qrect的使用 qt 使用Qt介面以及邏輯實現

2021-10-13 13:25:46 字數 1596 閱讀 1958

用過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...