在學習pyqt5的布局時,發現如下問題:當使用pyqt5.qtwidgets.qmainwindow()建立主視窗,並向主視窗新增布局時,會報警告"qwidget::setlayout: attempting to set qlayout "" on qmainwindow "", which already has a layout",大意是說qmainwindow已經有layout了,qwidget::setlayout無法再向qmainwindow新增qlayout。而且,qlayout中的widget無法在視窗中顯示。
解決此問題的方法:將qmainwindow()修改為qwidget(),即可解決此問題。
**如下:
1import
sys2
import
pyqt5
3from pyqt5.qtwidgets import
4from pyqt5 import
qtcore, qtwidgets
5from pyqt5.qtgui import
qpalette, qicon67
if__name__ == "
__main__":
8#新建應用程式10#
新建主視窗
11 mainwindow =pyqt5.qtwidgets.qwidget()12#
icon = qicon.addpixmap()13#
mainwindow.setwindowicon(qicon(r'd:\vscode\pic\test.png'))
1415 port =qtwidgets.qcombobox()
16 port.additems(['
com1
', '
com2
', '
com3
', '
com4
', '
com5
', '
com6
', '
com7
', '
com8
', '
com9'])
1718 baud =qtwidgets.qcombobox()
19 baud.additems(['
9600
', '
115200'])
2021 check =qtwidgets.qcombobox()
22 check.additems(['
none
', '
odd', '
even
', '
mark
', '
space'])
2324 datalen =qtwidgets.qcombobox()
25 datalen.additems(['
5', '
6', '
7', '
8', '9'
])26
27 stopbit =qtwidgets.qcombobox()
28 stopbit.additems(['
1', '
1.5', '2'
])29
30 vbox =qvboxlayout()
31vbox.addwidget(port)
32vbox.addwidget(baud)
33vbox.addwidget(check)
34vbox.addwidget(datalen)
35vbox.addwidget(stopbit)
3637
mainwindow.setlayout(vbox)38#
視窗大小設定
39 mainwindow.resize(800, 600)
40 mainwindow.setwindowtitle('
串列埠助手')
4142
#視窗顯示
43mainwindow.show()
view code
pyqt5學習筆記 1
from pyqt5.qt import import sys 使用sys.ar 是為了讓gui程式接收到使用者傳遞的引數 建立乙個控制項,如果這個控制項沒有父控制項,那麼pyqt5會控制項加上標題等屬性,並可以設定屬性內容 這個控制項也可以叫做頂層控制項,沒有父控制項的控制項的展示需要呼叫show...
PyQt5 學習筆記
pyqt5是由一系列python模組組成。超過620個類,6000函式和方法。能在諸如unix windows和mac os等主流作業系統上執行。pyqt5有兩種證書,gpl和商業證書。pyqt5類分為很多模組,主要模組有 qtcore 包含了核心的非gui的功能。主要和時間 檔案與資料夾 各種資料...
pyqt5入門學習筆記
import sys if name main 建立乙個視窗 w qwidget 設定乙個視窗尺寸 w.resize 400,200 移動視窗 w.move 300,300 設定視窗標題 w.setwindowtitle 第乙個基於pyqt5的桌面應用 顯示視窗 w.show 進入程式的主迴圈,並通...