PyQt的窗口简介
在PyQt中,窗口(Window)是用户界面的核心组件,通常由QWidget或其子类(如 QMainWindow , QDialog 等)实现。窗口是用户与应用程序交互的主要界面,可以包含各种控件(如按钮,标签,输入框)和布局。
QWidget
控件和窗口的父类 ,自由度高(什么都东西都没有),没有划分菜单、工具栏、状态栏、主窗口 等区域。
import sysfrom PyQt5.QtWidgets import QWidget, QLabel , QApplicationclass mywnd(QWidget):def __init__(self):super(mywnd, self).__init__()self.initUI()def initUI(self):label = QLabel("这是文字~~" )label.setStyleSheet("font-size:30px;color:red")label.setParent(self)if __name__ == '__main__':app = QApplication(sys.argv)w = mywnd()#设置窗口标题w.setWindowTitle("qwidget")# 展示窗口w.show()# 程序进行循环等待状态app.exec()
输出结果:
QMainWindow
QMainWindow是 QWidget
的子类,包含菜单栏,工具栏,状态栏,标题栏等,中间部分则为主窗口区域。
import sysfrom PyQt5.QtWidgets import QMainWindow, QLabel, QApplicationclass MyWindow(QMainWindow):def __init__(self):super().__init__()self.init_ui()def init_ui(self):label = QLabel("这是文字~~")label.setStyleSheet("font-size:30px;color:red")# 调用父类中的menuBar,从而对菜单栏进行操作menu = self.menuBar()# 如果是Mac的话,菜单栏不会在Window中显示而是屏幕顶部系统菜单栏位置# 下面这一行代码使得Mac也按照Windows的那种方式在Window中显示Menumenu.setNativeMenuBar(False)file_menu = menu.addMenu("文件")file_menu.addAction("新建")file_menu.addAction("打开")file_menu.addAction("保存")edit_menu = menu.addMenu("编辑")edit_menu.addAction("复制")edit_menu.addAction("粘贴")edit_menu.addAction("剪切")# 设置中心内容显示self.setCentralWidget(label)if __name__ == '__main__':app = QApplication(sys.argv)w = MyWindow()# 设置窗口标题w.setWindowTitle("我是窗口标题....")# 展示窗口w.show()# 程序进行循环等待状态app.exec()
输出结果:
QDialog
对话框窗口的基类。不过对话框一般不应该作为主窗口的存在,而是通过点击操作弹出,起到提示作用。
import sysfrom PyQt5.QtWidgets import QDialog, QPushButton, QApplicationclass MyDialog(QDialog):def __init__(self):super().__init__()self.init_ui()def init_ui(self):ok_btn = QPushButton("确定", self)ok_btn.setGeometry(50, 50, 100, 30)if __name__ == '__main__':app = QApplication(sys.argv)w = MyDialog()# 设置窗口标题w.setWindowTitle("对话框")# 展示窗口w.show()# 程序进行循环等待状态app.exec()
输出结果: