1. 程式人生 > >Tkinter之一(TCL/Tk在Python上的移植)

Tkinter之一(TCL/Tk在Python上的移植)

What is Tkinter?

 TkinterPythonGUI widget。它是基於Tk工具包的,而Tk最初是為了工具命令語言(Tool Command Language, TCL)設計的。由於Tk的流行,它被移植到Perl(Perl/Tk)Python(Tkinter)

A minimal application

#!/usr/bin/python
from Tkinter import 
*class Application(Frame):                           
         def __init__(self, master 
= None):
Frame.__init__(self, master)
self.grid()
self.createWidget()
          
          def createWidgets(self):
                self.quitButton 
= Button(self, text = ‘Quit’, command=self.quit)
                self.quitButton.grid()
app 
= Application()
app.master.title(‘Sample application’)
app.mainloop()
注意:Application類必須從Frame類繼承而來,其__init__函式宜先呼叫其父類的__init__。其中grid()函式用於將Widget顯示出來,感覺應該是跟元件的pack()類似。

另外一種形式的Hello, world

#title: HelloWorld.py
from Tkinter import 
*

root 
= Tk()
label 
= Label(text = “hello world”);
label.pack()

root.mainloop()

Layout management

儘管在Tkinter中有三種geometry managers,但是本文將使用.grid()。這種Layout管理器將所有的widget都看成是一個由列跟行組成的表格。通常包含如下術語:

  • 單元cell
  • 寬width
  • 高 height
  • extra space
  • 合併單元格spanning

建立了一個widget後,只有將其向geometry manager註冊後,該widget

才會顯示出來。

thing = Constructor(master, …)
thing.grid(…)

用類封裝的Hello, world例子。

#file : hello2.py

from Tkinter import 
*class App:
         def __init__(self, master):
            frame 
= Frame(master)
            frame.pack()

            self.button 
= Button(frame, text = ‘Quit’, fg =’red’, command = frame.quit)
            self.button.pack(side 
= LEFT)
         
            self.hi_there 
= Button(frame, text = ‘Hello’, command = self.say_hi)
            self.hi_there.pack()

        def say_hi(self):
            print ‘hi there, everyone
!

root 
= Tk()
app 
= App(root)
root.mainloop()

相關推薦

Tkinter之一(TCL/Tk在Python移植)

What is Tkinter?  Tkinter是Python的GUI widget。它是基於Tk工具包的,而Tk最初是為了工具命令語言(Tool Command Language, TCL)設計的。由於Tk的流行,它被移植到Perl(Perl/Tk)和Python(Tki

【轉】stm32CubeMx移植自己的printf()和scanf()函數

smi config 用戶 type 連接器 標準庫 can 修改 esp 要想printf()和scanf() 函數工作,我們需要把printf()和scanf() 重新定向到串口中。重定向是指用戶可以自己重寫C 的庫函數,當連接器檢查到用戶編寫了與C 庫函數相同名字的函

嵌入式Linux移植unzip工具

16px 文件 bsp ont div 嵌入 for .gz .tar.gz   由於busybox編譯出來的unzip不支持有密碼的壓縮包解壓,因此基於unzip60源碼包,交叉編譯一個嵌入式Linux上的unzip工具。 1.下載地址是: http://sourcefo

hikey970學習-012 hikey970移植影象去雨深度神經網路演算法

摘要:本文在hikey970嵌入式裝置上執行影象去雨深度神經網路演算法,驗證hikey970執行神經網路模型的效能與效果。 一、影象去雨簡介     影象去雨處理指的是對於一張雨中的圖片,去除畫面中的雨滴,得到還原後的圖片,與圖片去霧、超解析度等同屬CV領域中影

qt5.5.1在Cortex-a8移植記錄

使用Qt5.5.1原始碼包進行編譯:下載地址 http://download.qt.io/official_releases/qt/ tslib1.4編譯 1.解壓並進入Tslib目錄 2.gedit tests/ts_calibrate.c    230行在o

購買開發板後在iTOP4412開發板移植SDIO介面WIFI方法

       近期需要把WiFi無線網路功能移植到在iTOP4412 開發平臺,查閱了相關資料,經過一段時間的研究、除錯,終於成功,將WiFi功能移植到了開發板上面,這裡筆者記錄移植過程及注意事項,方便以後工作需要。     iTOP4412開發板的WiFi模組與板卡之間

【Ceph學習之一】Centos7部署Ceph儲存叢集以及CephFS的安裝

             Ceph已然成為開源社群極為火爆的分散式儲存開源方案,最近需要調研Openstack與Ceph的融合方案,因此開始瞭解Ceph,當然從搭建Ceph叢集開始。         我搭建機器使用了6臺虛擬機器,包括一個admin節點,一個monitor節

一、在Tiny4412移植3602代WIFI的AP模式

下文的ap模式,不需要hostaod就能產生熱點,目前只能讓其和手機連線,並且能夠ping通。(還沒支援上網@[email protected],後期可以在更新) 一、開發環境 宿主機 :redhat5.3 交叉編譯器 :arm-linux-gcc(4.5.1)

itop4412移植360WiFi 二代AP模式

        最近要在4412的板子上實現無線AP模式,但是給的資料都是作為STA模式的,在網上找了相應的資料,終於根據網上的資料移植360隨身WIFI 2代的AP模式成功。 (我去,我放的圖呢?

I.mx6s移植wm8960驅動(基於linux3.0.101版本)

注意上面最後的引數:--disable-alsamixer 若不加此引數編譯會報錯:configure error required courses helper header not found 具體原因不清楚!!7.2 編譯make7.3安裝(需要root許可權)sudo make install

龍芯3A2000移植NASA WorldWind指南

http://www.loongson.cn/news/company/467.html 一、初識NASA WORLDWIND    NASA World Wind是NASA(美國)國家航空和宇宙航行局聯合出品,類似Earthview 3D的鳥瞰工具,更加權威而且完全免費

Arm板子移植putty

For building on Unix: - unix/configure is for Unix and GTK. If you don't have GTK, you   should still be able to build the command-line utilities (PSCP,   

在JZ2440移植裝置樹---下:核心和裝置樹移植

在JZ2440上移植裝置樹—下:核心和裝置樹移植 2、核心移植 在www.kernel.org上下載原始碼,我這裡選取的是linux-4.15.10版本。 解壓後,檔名重新命名為linux-4.15.10-jz2440。 cd進入 既然要使用裝置

初學者EFM32移植uC/OSII

前言 之前大學接觸過uc/os,大學開了ARM這門課程,用的是周立功的教材,好像是大四開的,你懂的,實驗只帶手不帶腦,複製–編譯–下載–嘿,燈亮了–走人。 最近在接觸EFM32系列MCU,就想彌補一下大學的遺憾。為時間4天的準備和移植工作終於完成,還是,嘿燈

在STM32移植FreeModbus RTU的一點經驗總結

    廢話少說,首先去下載原始碼,我下載的是freemodbus-v1.5.0,解壓後如圖所示:   在demo資料夾中有很多移植好的例子,但是沒有STM32的,不要緊,我們參考已有的例子來操作就可以了。在demo資料夾下新建一個資料夾,命名為STM32,將BARE資料夾裡的檔案全部複製過來。    

在JZ2440移植裝置樹---:u-boot移植

在JZ2440上移植裝置樹–上:u-boot移植 為了用上買了之後就一直在吃灰的JZ2440,決定下一番功夫在jz2440上移植裝置樹。由於韋老師的視訊中沒有講到裝置樹相關,前前後後總共花了我約五個晚上,一個週末的時間。 1、移植u-boot u-boot

在vxworks移植netperf工具

最近需要測一下vxworks上的網路效能,在網上搜了一下,發現iperf支援vxworks,但是並沒有找到對應的原始碼,加了一個vxworks的QQ群,裡面有人提到自己就是用netperf在vxworks上測試網路效能的,因此決定將netperf移植到vxworks上。 手

嵌入式系統移植iperf

1. 先把iperf-2.0.2.tar.gz解壓到你的目錄下。2. cd iperf-2.0.23. ./configure --host=mips  CXX=mips_4KC-g++ CC=mips_4KC-gcc   這裡的mips_4KC-改成你自己的交叉編譯器的字首

(二)U-boot在開發板移植過程詳解--bootloader架構分析

 本例中採用的同樣是前邊一貫的實驗板,這裡就不對板子資源做進一步介紹了。     我們知道,bootloader是系統上電後最初載入執行的程式碼。它提供了處理器上電覆位後最開始需要執行的初始化程式碼。在PC機上載入程式一般由BIOS開始執行,然後讀取硬碟中位於MBR(Main Boot Record,主引

qt應用程式向arm板移植中文不能正確顯示的解決辦法

QApplication a(argc, argv); QTextCodec *codec = QTextCodec::codecForName("gbk"); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(code