实现仿360界面的自定义QPushButton类教程

需积分: 22 8 下载量 78 浏览量 更新于2024-10-02 收藏 52KB RAR 举报
资源摘要信息:"该资源详细介绍了如何使用Qt框架来创建一个类似于360安全卫士的用户界面,并且重点讲解了自定义QPushButton类的创建和应用。360安全卫士是一款在中国广泛使用的电脑安全防护软件,其界面风格简洁且功能性强大。资源中提供了完整的步骤和代码示例,帮助开发者在Qt环境中实现类似的界面设计。 首先,资源中涉及的知识点包括了Qt框架的基本使用,如信号与槽机制、布局管理器、事件处理等。这些是构建任何Qt应用程序的基础,特别是在涉及用户界面设计时尤为重要。 接着,资源深入讲解了QPushButton类的使用和定制。QPushButton是Qt中用于创建按钮的类,是用户界面中不可或缺的控件之一。在资源中,开发者将会了解到如何通过子类化QPushButton来创建一个具有特定外观和行为的按钮,比如模仿360安全卫士界面中的特定按钮样式和功能。 资源还包含了关于Qt样式表(Qt Style Sheets)的知识点。Qt样式表是模仿了Web技术中的CSS,可以用来定义控件的外观和行为,是实现界面美化和风格统一的有效工具。开发者可以利用样式表来改变按钮的颜色、字体、边框等属性,使其更贴近360安全卫士的界面风格。 此外,资源可能还涉及到了Qt中的布局管理器,这些管理器用于组织窗口中的控件,确保它们在不同分辨率和大小的屏幕上都能正确地显示。在仿制360安全卫士界面的过程中,合理使用布局管理器是至关重要的,它能够帮助开发者以编程方式精确地放置和调整按钮和其他界面元素。 资源中也可能提供了关于Qt事件处理的知识,特别是自定义事件处理的知识。在创建类似360安全卫士的复杂界面时,开发者需要对各种鼠标、键盘事件做出响应,并且可能需要处理自定义事件来实现特定的功能。 最后,资源中提及的自定义PushButton类,可能包含了对QPushButton类的深度定制,如添加新的信号、槽,修改绘制事件等。这要求开发者对Qt的子类化机制有一定的了解,以及对C++语言的继承和多态性有一定的掌握。 整体而言,这份资源是一个综合性的教程,旨在帮助Qt开发者通过模仿360安全卫士界面,学习和掌握Qt在创建复杂用户界面时的高级技巧,特别是自定义控件和样式表的应用。"

# 打开图片按钮 self.pushButton_img = QtWidgets.QPushButton(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.MinimumExpanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.pushButton_img.sizePolicy().hasHeightForWidth()) self.pushButton_img.setSizePolicy(sizePolicy) self.pushButton_img.setMinimumSize(QtCore.QSize(150, 40)) self.pushButton_img.setMaximumSize(QtCore.QSize(150, 40)) font = QtGui.QFont() font.setFamily("Agency FB") font.setPointSize(12) self.pushButton_img.setFont(font) self.pushButton_img.setObjectName("pushButton_img") self.verticalLayout.addWidget(self.pushButton_img, 0, QtCore.Qt.AlignHCenter) self.verticalLayout.addStretch(5) # 增加垂直盒子内部对象间距 # 打开摄像头按钮 self.pushButton_camera = QtWidgets.QPushButton(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.pushButton_camera.sizePolicy().hasHeightForWidth()) self.pushButton_camera.setSizePolicy(sizePolicy) self.pushButton_camera.setMinimumSize(QtCore.QSize(150, 40)) self.pushButton_camera.setMaximumSize(QtCore.QSize(150, 40)) self.pushButton_camera.setFont(font) self.pushButton_camera.setObjectName("pushButton_camera") self.verticalLayout.addWidget(self.pushButton_camera, 0, QtCore.Qt.AlignHCenter) self.verticalLayout.addStretch(5)

2023-07-15 上传

from PyQt5 import QtCore, QtGui, QtWidgets from show1 import Ui_Form1 from show2 import Ui_Form2 from show3 import Ui_Form3 class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(400, 300) self.pushButton = QtWidgets.QPushButton(Form) self.pushButton.setGeometry(QtCore.QRect(90, 60, 191, 51)) font = QtGui.QFont() font.setPointSize(9) self.pushButton.setFont(font) self.pushButton.setObjectName("pushButton") self.pushButton_2 = QtWidgets.QPushButton(Form) self.pushButton_2.setGeometry(QtCore.QRect(90, 110, 191, 51)) self.pushButton_2.setObjectName("pushButton_2") self.pushButton_3 = QtWidgets.QPushButton(Form) self.pushButton_3.setGeometry(QtCore.QRect(90, 160, 191, 51)) self.pushButton_3.setObjectName("pushButton_3") self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Form")) self.pushButton.setText(_translate("Form", "无人机群显示")) self.pushButton_2.setText(_translate("Form", "无人机群数据分析展示")) self.pushButton_3.setText(_translate("Form", "无人机群飞行轨迹展示")) class MainWindow(QtWidgets.QMainWindow): def __init__(self): super().__init__() self.ui = Ui_Form() self.ui.setupUi(self) self.ui.pushButton.clicked.connect(self.showForm1) self.ui.pushButton_2.clicked.connect(self.showForm2) self.ui.pushButton_3.clicked.connect(self.showForm3) def showForm1(self): self.form1 = QtWidgets.QWidget() self.ui1 = Ui_Form1() self.ui1.setupUi(self.form1) self.form1.show() def showForm2(self): self.form2 = QtWidgets.QWidget() self.ui2 = Ui_Form2() self.ui2.setupUi(self.form2) self.form2.show() def showForm3(self): self.form3 = QtWidgets.QWidget() self.ui3 = Ui

2023-06-09 上传

from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(1044, 729) self.gridLayoutWidget = QtWidgets.QWidget(Form) self.gridLayoutWidget.setGeometry(QtCore.QRect(19, 9, 991, 551)) self.gridLayoutWidget.setObjectName("gridLayoutWidget") self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget) self.gridLayout.setContentsMargins(0, 0, 0, 0) self.gridLayout.setObjectName("gridLayout") self.label = QtWidgets.QLabel(self.gridLayoutWidget) font = QtGui.QFont() font.setFamily("Adobe Arabic") font.setPointSize(26) self.label.setFont(font) self.label.setStyleSheet("background-color: rgb(255, 255, 127);") self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName("label") self.gridLayout.addWidget(self.label, 0, 0, 1, 1) self.label_2 = QtWidgets.QLabel(self.gridLayoutWidget) font = QtGui.QFont() font.setFamily("Adobe Arabic") font.setPointSize(26) self.label_2.setFont(font) self.label_2.setStyleSheet("background-color: rgb(170, 255, 255);") self.label_2.setAlignment(QtCore.Qt.AlignCenter) self.label_2.setObjectName("label_2") self.gridLayout.addWidget(self.label_2, 0, 1, 1, 1) self.pushButton = QtWidgets.QPushButton(Form) self.pushButton.setGeometry(QtCore.QRect(130, 640, 161, 51)) font = QtGui.QFont() font.setFamily("Adobe Arabic") font.setPointSize(18) self.pushButton.setFont(font) self.pushButton.setObjectName("pushButton") self.pushButton_2 = QtWidgets.QPushButton(Form) self.pushButton_2.setGeometry(QtCore.QRect(660, 640, 161, 51)) font = QtGui.QFont() font.setFamily("Adobe Arabic") font.setPointSize(18) self.pushButton_2.setFont(font) self.pushButton_2.setObjectName("pushButton_2") self.retranslateUi(Form) self.pushButton.clicked.connect(Form.Action) # type: ignore self.pushButton_2.clicked.connect(Form.UserNow) # type: ignore QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Form")) self.label.setText(_translate("Form", "实时图像")) self.label_2.setText(_translate("Form", "抓取图像")) self.pushButton.setText(_translate("Form", "打开相机")) self.pushButton_2.setText(_translate("Form", "抓取图像"))

2023-05-18 上传