PyQt5初次體驗

2021-08-01 16:25:29 字數 2010 閱讀 6277

今天初次使用了pyqt5,感覺不錯。 

注意的問題是,pyqt5貌似只支援python 3 

碰到的問題: 

沒有找到qstring型別,貌似是使用的python的內建str型別。因此無法使用trimmed等方法,而要使用strip()方法。 

connect方法和c++版本不一樣。具體情況見**。 

在qt5中,沒有找到qvboxlayout的setmargin方法,查詢文件發現已經替換成了setcontentsmargins方法。

ok,看一下**吧:

#!/usr/bin/python3

#coding:utf-8

from pyqt5.qtwidgets import *

import sys

class

logindlg

(qdialog):

def__init__

(self, parent=none):

super(logindlg, self).__init__(parent)

usr = qlabel("使用者:")

pwd = qlabel("密碼:")

self.usrlineedit = qlineedit()

self.pwdlineedit = qlineedit()

self.pwdlineedit.setechomode(qlineedit.password)

gridlayout = qgridlayout()

gridlayout.addwidget(usr, 0, 0, 1, 1)

gridlayout.addwidget(pwd, 1, 0, 1, 1)

gridlayout.addwidget(self.usrlineedit, 0, 1, 1, 3);

gridlayout.addwidget(self.pwdlineedit, 1, 1, 1, 3);

okbtn = qpushbutton("確定")

cancelbtn = qpushbutton("取消")

btnlayout = qhboxlayout()

btnlayout.setspacing(60)

btnlayout.addwidget(okbtn)

btnlayout.addwidget(cancelbtn)

dlglayout = qvboxlayout()

dlglayout.setcontentsmargins(40, 40, 40, 40)

dlglayout.addlayout(gridlayout)

dlglayout.addstretch(40)

dlglayout.addlayout(btnlayout)

self.setlayout(dlglayout)

okbtn.clicked.connect(self.accept)

cancelbtn.clicked.connect(self.reject)

self.setwindowtitle("登入")

self.resize(300, 200)

defaccept

(self):

if self.usrlineedit.text().strip() == "eric"

and self.pwdlineedit.text() == "eric":

super(logindlg, self).accept()

else:

qmessagebox.warning(self,

"警告",

"使用者名稱或密碼錯誤!",

qmessagebox.yes)

self.usrlineedit.setfocus()

dlg = logindlg()

dlg.show()

dlg.exec_()

效果如下: 

PyQt5初次體驗

今天初次使用了pyqt5,感覺不錯。注意的問題是,pyqt5貌似只支援python 3 碰到的問題 沒有找到qstring型別,貌似是使用的python的內建str型別。因此無法使用trimmed等方法,而要使用strip 方法。connect方法和c 版本不一樣。具體情況見 在qt5中,沒有找到q...

pyqt5切換python版本 pyqt5介面切換

主要的思路就是建立兩個frame 如果有兩個以上同理 使用setvisible 函式顯示或者隱藏frame 引數是bool值 import sys from pyqt5.qtwidgets import from pyqt5.qtcore import from pyqt5.qtgui import...

pyqt5多執行緒優化 PyQt5多執行緒

您不應該向主檢視傳送乙個新的小部件 qlabel 因為它將是乙個新標籤,而不是原始標籤,您應該傳送str型別的文字class thread qthread changepixmap pyqtsignal qpixmap changelabel pyqtsignal str def run self ...