QWidget,QMainWindow,QDialog和QFrame的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QWidget,QMainWindow,QDialog和QFrame的区别相关的知识,希望对你有一定的参考价值。

参考技术A QWidget类是所有用户界面对象的基类。 QMainWindow类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。继承于QWidget。 QDialog类是对话框窗口的基类。继承于QWidget。 QFrame类是有框架的窗口部件的基类。继承于QWidget。

旋钮QDial

样式:

技术图片

 

 

 1 import sys
 2 from PyQt5.QtGui import QFont
 3 from PyQt5.QtWidgets import QApplication, QWidget, QDial, QLabel, QHBoxLayout
 4 
 5 
 6 class Demo(QWidget):
 7     def __init__(self):
 8         super(Demo, self).__init__()
 9         self.setWindowTitle(旋转按钮)
10 
11         self.dial = QDial(self)  #实例化旋转按钮
12         self.dial.setFixedSize(100, 100)  # 固定旋钮大小,否则会随窗口的变化而发生变化
13         self.dial.setRange(0, 100)  #设置表盘数值范围,当然也可以使用setMinimum()和setMaximum()方法
14         self.dial.setNotchesVisible(True)  # 是否显示刻度,刻度会根据我们设置的数值自动调整
15         self.dial.valueChanged.connect(self.on_change_func)  # 当数值发生变化时发出信号
16 
17         self.label = QLabel(0, self)
18         self.label.setFont(QFont(Arial Black, 20))
19 
20         self.h_layout = QHBoxLayout()
21         self.h_layout.addWidget(self.dial)
22         self.h_layout.addWidget(self.label)
23 
24         self.setLayout(self.h_layout)
25 
26     def on_change_func(self):
27         self.label.setText(str(self.dial.value()))
28 
29 
30 if __name__ == __main__:
31     app = QApplication(sys.argv)
32     demo = Demo()
33     demo.show()
34     sys.exit(app.exec_())

 

以上是关于QWidget,QMainWindow,QDialog和QFrame的区别的主要内容,如果未能解决你的问题,请参考以下文章

QMainWindow和QWidget

如何从父级不是 QMainWindow 的 QWidget 访问 QMainWindow

如何在无父 QWidget 中接收 QMainWindow mouseClick 事件?

C ++ QT如何从QMainWindow布局访问QWidget的公共类成员

QT中将QWidget提升为QMainWindow

从 QWidget (PyQt4) 调用 QMainWindow 中的方法/属性