用過qt的朋友 特別是qtcreator的習慣在介面ui上面對應的cpp中寫**。但是在pyqt中不是這樣的。pyqt只是個介面,只會生成介面即ui,就算是乙個按鈕也需要在python只自己寫。不會想當然的找槽函式自動生成那麼簡單了。
安裝pyqt5 pip3 install pyqt
安裝設計器 pip3 install pyqt-tools
開啟qt5tools中的設計器
做乙個介面,隨便放幾個控制項
需要處理事件的可以在python中使用connect 也可以在編輯siangls/slot中關於系統的事件或者指定事件。實現的內容這裡做不到。只是介面
這是幾種編輯方式
這是我編輯了乙個單擊事件名稱 。
如果你編輯了,等介面幫你connect 訊號與槽了。介面中有兩個按鈕乙個使用設計器連線,乙個手工連線。做個區別
生成的.ui檔案存,然後轉化 說到轉化就是.ui變.py的過程 .py在python中是可以直接使用的。
在script中有個pyuic5.exe用這個轉化,有的編輯工具中使用配置好的工具鏈也可以。這裡先使用命令
pyuic5 c:\users\gucunlin\test\testdialog.ui -o c:\users\gucunlin\test\testdialog.py
生成後的py檔案如下
看到只是對控制項的位置屬性進行定義而已,其中
self.pushbutton.clicked.connect(dialog.pushbutton1clicked)是對單擊事件的處理名稱進行關聯
大家都知道介面需要有類合併來支撐這個介面。用過qt的應該知道。介面有了還需要乙個類與介面合併,可以想像這個類相當於cpp和.**件吧
ui只有兩個函式setupui和retranslateui想當於安裝ui或釋放ui吧
看到setupui的引數沒有,定義的類就是這個引數 。看到self.pushbutton.clicked.connect(dialog.pushbutton1clicked),應該推斷pushbutton1clicked是在dialog引數中。需要我們在定義的類中實現這個函式
我們來定義乙個類
classtestform(qtwidgets.qdialog):defpushbutton1clicked(self): box = qtwidgets.qmessagebox() box.warning(self,"提示","這是乙個按鈕事件")
由於我們的介面是qdialog需要類也叢qdialog中繼承下來
下面開始主函式,大家都知道主函式是程式的入口吧
以上就是介面的全套了。看執行效果
單擊第乙個按鈕
有效果現在做出改變,在main函式中又是定義ui又是裝載ui太麻煩 ,這裡我們整合到testdialog類中,這樣使用的時候非常方便
注釋掉除了生成的所有的**,新建乙個py檔案,引用生成的檔案 ,按鈕二的連線也放到類中去
執行後單擊第二個按鈕介面關閉,為了方便截圖改一下
defpushbuttonclicked2(self):# self.close() #關閉box = qtwidgets.qmessagebox() box.warning(self, "提示", "這是第二個按鈕")執行效果圖如下
基本上就這些了,到此結束
Qt中QRect和CRect的比較
本文介紹qt的qrect和windows下的crect的比較。qrect的無參構造方法是這樣的 qrect x1 0 y1 0 x2 1 y2 1 預設構造的x2和y2為 1,而crect的無參構造這兩個數值為0。帶4個整形引數未知的構造方法是這樣的 qrect int aleft,int atop...
Qt學習 qt共享記憶體的使用
類常用的操作 1 qsharedmemory類物件的建立 利用qsharedmemory類建立例項物件時,必須為該共享記憶體指定關鍵字 即為該共享記憶體起乙個名字 只有當共享記憶體被設定了關鍵字之後,才可以執行建立 create 關聯attach 等操作。為共享記憶體指定關鍵字有兩種方法 通過建構函...
qt初次使用
qt獲取當前系統時間並顯示 包含標頭檔案qdatatime qdatetime time qdatetime currentdatetime 獲取系統現在的時間 qstring str time.tostring yyyy mm dd hh mm ss 設定顯示格式 qdatetime轉換為qstr...