小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

pycharm安裝外部工具tkinter和pyinstaller

 王野yvvrnyam9s 2021-06-05

圖為最終效果

這篇文章很長,難度不小,所以湊合看。

看下面的敘述之前先參考三篇文章:

tkinter常用參數(shù)

外部工具加入pyinstaller

page介紹

然后開始正文敘述:

python32位pyinstaller安裝后一般在這個位置

我們添加外部工具時這樣配置就行

有個注意事項(xiàng),當(dāng)打包的exe文件不帶界面時,運(yùn)行完畢會自動關(guān)閉黑窗口的,所以這種程序最好在末尾加上一行代碼:

 

然后我們PAGE軟件的路徑在這里:

然后我們添加PAGE外部工具時配置如下圖()

然后我們在編輯每個py文件時,使用外部工具Pyinstaller32就會自動打包到該py文件對應(yīng)目錄下

同理,打開外部Page,制作生成的界面,點(diǎn)擊保存時,默認(rèn)也會保存在當(dāng)前正在編輯的py文件所在目錄

現(xiàn)在重點(diǎn)來了,page直接保存的兩個.py文件在pycharm里面運(yùn)行時,如果代碼有中文, 是會運(yùn)行失敗了

原因是生成的代碼為gbk編碼,但pycharm默認(rèn)的utf-8

此時可以用idle打開一下生成的py文件,自動提示下面內(nèi)容

點(diǎn)ok就行,這兩個文件都點(diǎn),然后在pycharm里就能正常運(yùn)行了

然后還有個需要注意的東西,就是在函數(shù)訪問控件時,用w可以正常訪問并修改控件文本,但是不推薦這么做

這是page介紹里的用法, 這么干是不好的,比如你想改entry里面的文本,這樣就懵逼了

其實(shí)應(yīng)該在控件拖拽的時候,就在右邊屬性的textvar里定義好函數(shù)名

然后在support.py代碼里這么干:

這樣運(yùn)行后的結(jié)果:

點(diǎn)擊按鈕后:

好了,會了這個操作過后,后面的都不是問題了。當(dāng)然,這個tkinter可視化設(shè)計(jì)工具比之前的vb6的工具用起來稍微麻煩點(diǎn)

但關(guān)鍵是此工具比較新,最近還活躍更新,而且與python的tkinter工具控件及屬性完全對應(yīng),一個不多一個不少

相比起vb6設(shè)計(jì),不用去看vb里面和tkinter完全不同的一些細(xì)節(jié),及不完善的配置

最后也附上vb6工具的教程地址,不過本人現(xiàn)在用page,基本就不再用vb6的tkiner-designer了

https://blog.csdn.net/captain811/article/details/79340215

附上兩個文件:

測試獲取.py

  1. #! /usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. # GUI module generated by PAGE version 4.22
  5. # in conjunction with Tcl version 8.6
  6. # May 21, 2019 07:00:29 PM CST platform: Windows NT
  7. import sys
  8. try:
  9. import Tkinter as tk
  10. except ImportError:
  11. import tkinter as tk
  12. try:
  13. import ttk
  14. py3 = False
  15. except ImportError:
  16. import tkinter.ttk as ttk
  17. py3 = True
  18. import 測試獲取_support
  19. def vp_start_gui():
  20. '''Starting point when module is the main routine.'''
  21. global val, w, root
  22. root = tk.Tk()
  23. 測試獲取_support.set_Tk_var()
  24. top = Toplevel1 (root)
  25. 測試獲取_support.init(root, top)
  26. root.mainloop()
  27. w = None
  28. def create_Toplevel1(root, *args, **kwargs):
  29. '''Starting point when module is imported by another program.'''
  30. global w, w_win, rt
  31. rt = root
  32. w = tk.Toplevel (root)
  33. 測試獲取_support.set_Tk_var()
  34. top = Toplevel1 (w)
  35. 測試獲取_support.init(w, top, *args, **kwargs)
  36. return (w, top)
  37. def destroy_Toplevel1():
  38. global w
  39. w.destroy()
  40. w = None
  41. class Toplevel1:
  42. def __init__(self, top=None):
  43. '''This class configures and populates the toplevel window.
  44. top is the toplevel containing window.'''
  45. _bgcolor = '#d9d9d9' # X11 color: 'gray85'
  46. _fgcolor = '#000000' # X11 color: 'black'
  47. _compcolor = '#d9d9d9' # X11 color: 'gray85'
  48. _ana1color = '#d9d9d9' # X11 color: 'gray85'
  49. _ana2color = '#ececec' # Closest X11 color: 'gray92'
  50. top.geometry('600x450+650+150')
  51. top.title('New Toplevel')
  52. top.configure(background='#d9d9d9')
  53. self.Label1 = tk.Label(top)
  54. self.Label1.place(relx=0.05, rely=0.156, height=23, width=42)
  55. self.Label1.configure(background='#d9d9d9')
  56. self.Label1.configure(disabledforeground='#a3a3a3')
  57. self.Label1.configure(foreground='#000000')
  58. self.Label1.configure(text='''版本號''')
  59. self.Button_獲取 = tk.Button(top)
  60. self.Button_獲取.place(relx=0.45, rely=0.156, height=28, width=35)
  61. self.Button_獲取.configure(activebackground='#ececec')
  62. self.Button_獲取.configure(activeforeground='#000000')
  63. self.Button_獲取.configure(background='#d9d9d9')
  64. self.Button_獲取.configure(command=測試獲取_support.button_獲取被單擊)
  65. self.Button_獲取.configure(disabledforeground='#a3a3a3')
  66. self.Button_獲取.configure(foreground='#000000')
  67. self.Button_獲取.configure(highlightbackground='#d9d9d9')
  68. self.Button_獲取.configure(highlightcolor='black')
  69. self.Button_獲取.configure(pady='0')
  70. self.Button_獲取.configure(text='''獲取''')
  71. self.Entry_版本號 = tk.Entry(top)
  72. self.Entry_版本號.place(relx=0.167, rely=0.156,height=27, relwidth=0.24)
  73. self.Entry_版本號.configure(background='white')
  74. self.Entry_版本號.configure(disabledforeground='#a3a3a3')
  75. self.Entry_版本號.configure(font='TkFixedFont')
  76. self.Entry_版本號.configure(foreground='#000000')
  77. self.Entry_版本號.configure(insertbackground='black')
  78. self.Entry_版本號.configure(textvariable=測試獲取_support.text_版本號)
  79. self.Entry_版本號.configure(width=144)
  80. if __name__ == '__main__':
  81. vp_start_gui()

測試獲取_support.py

  1. #! /usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. # Support module generated by PAGE version 4.22
  5. # in conjunction with Tcl version 8.6
  6. # May 21, 2019 07:00:35 PM CST platform: Windows NT
  7. import sys
  8. try:
  9. import Tkinter as tk
  10. except ImportError:
  11. import tkinter as tk
  12. try:
  13. import ttk
  14. py3 = False
  15. except ImportError:
  16. import tkinter.ttk as ttk
  17. py3 = True
  18. def set_Tk_var():
  19. global text_版本號
  20. text_版本號 = tk.StringVar()
  21. text_版本號.set('初始文本')
  22. def button_獲取被單擊():
  23. print('測試獲取_support.button_獲取被單擊')
  24. sys.stdout.flush()
  25. text_版本號.set('點(diǎn)擊按鈕后改變的文本')
  26. def init(top, gui, *args, **kwargs):
  27. global w, top_level, root
  28. w = gui
  29. top_level = top
  30. root = top
  31. def destroy_window():
  32. # Function which closes the window.
  33. global top_level
  34. top_level.destroy()
  35. top_level = None
  36. if __name__ == '__main__':
  37. import 測試獲取
  38. 測試獲取.vp_start_gui()

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約