PyQt5--MessageBox

 1 # -*- coding:utf-8 -*-
 2 '''
 3 Created on Sep 13, 2018
 4 
 5 @author: SaShuangYiBing
 6 '''
 7 import sys
 8 from PyQt5.QtWidgets import QApplication,QWidget,QMessageBox,QPushButton
 9 from PyQt5.QtCore import QCoreApplication
10 
11 class New_test(QWidget):
12     def __init__(self):
13         super().__init__()
14         self.initUI()
15         
16     def initUI(self):
17         qbtn = QPushButton('Quit',self) # 创建了一个按钮。按钮是一个QPushButton类的实例。
18         # 构造方法的第一个参数是显示在button上的标签文本。第二个参数是父组件。
19         # 父组件是Example组件,它继承了QWiget类。
20         qbtn.clicked.connect(QCoreApplication.instance().quit)
21         qbtn.resize(qbtn.sizeHint())
22         qbtn.move(100,50)
23         self.setGeometry(300,300,250,150)
24         self.setWindowTitle('Message box')
25         self.show()
26         
27     def closeEvent(self, event):
28         reply = QMessageBox.question(self, 'Message', 'Are you want to quit?', QMessageBox.Yes | QMessageBox.No,QMessageBox.Yes)
29         if reply == QMessageBox.Yes:
30             event.accept()
31         else:
32             event.ignore()
33 
34 if __name__ == "__main__":
35     app = QApplication(sys.argv)
36     ex = New_test()
37     sys.exit(app.exec_())
38         

点击窗口的 关闭 按钮,弹出messageBox

 

注:第28行解释:QMessageBox.question(self, 'Message', 'Are you want to quit?', QMessageBox.Yes | QMessageBox.No,QMessageBox.Yes)

显示一个消息框,两个按钮:“Yes”和“No”。第一个字符串出现在titlebar。第二个字符串消息对话框中显示的文本。第三个参数指定按钮的组合出现在对话框中。最后一个参数是默认按钮,这个是默认的按钮焦点。

转载于:https://www.cnblogs.com/aziji/p/9641907.html

### PyQt-Fluent-Widgets 教程与示例 #### 创建第一个应用程序 为了创建基于 `PyQt-Fluent-Widgets` 的GUI 应用程序,首先需要安装库。可以通过 pip 安装最新版本[^1]。 ```bash pip install pyqt-fluent-widgets ``` 接着可以编写简单的 Python 脚本来启动窗口并显示按钮: ```python from PyQt5.QtWidgets import QApplication, QWidget import sys from pyqt_fluent_widgets import PrimaryPushButton # 导入 Fluent 风格组件 class MyWindow(QWidget): def __init__(self): super().__init__() self.setWindowTitle('My First App') self.setGeometry(100, 100, 280, 80) button = PrimaryPushButton('Click Me', parent=self) button.move(90, 30) if __name__ == '__main__': app = QApplication(sys.argv) window = MyWindow() window.show() sys.exit(app.exec_()) ``` 这段代码展示了如何导入特定于 `pyqt-fluent-widgets` 的部件来增强界面美观度。 #### 使用高级控件 除了基本的按钮外,此库还提供了更多现代化设计风格的小部件,比如导航栏、卡片视图等。下面是一个更复杂的例子,它实现了带有顶部工具条的应用布局[^2]: ```python from pyqt_fluent_widgets import (NavigationInterface, NavigationItemPosition, MessageBox, isDarkTheme, setThemeColor) from qfluentwidgets import (SettingCardGroup, SwitchSettingCard, HyperlinkCard, ExpandLayout, SettingCard, PushButton, Theme) from PyQt5.QtCore import Qt from PyQt5.QtGui import QIcon from PyQt5.QtWidgets import QLabel, QVBoxLayout, QHBoxLayout, QStackedWidget class MainWindow(QMainWindow): def __init__(parent=None): super().__init__(parent=parent) _layout = QVBoxLayout() title_label = QLabel("Application Title", objectName='title') subtitle_label = QLabel("Subtitle description here.", objectName='description') layout = QHBoxLayout(self.window()) widget_layout = QVBoxLayout() navigation_interface = NavigationInterface(parent=self.window(), expand_width=True) stacked_widget = QStackedWidget(objectName='stackedWidget') home_card_group = SettingCardGroup(title="Home Page") about_card_group = SettingCardGroup(title="About") add_navigation_items(navigation_interface=navigation_interface, card_groups=[home_card_group, about_card_group]) widget_layout.addWidget(title_label) widget_layout.addWidget(subtitle_label) widget_layout.addStretch(1) widget_layout.setSpacing(0) widget_layout.setAlignment(Qt.AlignTop) layout.addWidget(stacked_widget) layout.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.setLayout(layout) self.resize(900, 720) self.setStyleSheet(''' * { font-size: 14px; } QMainWindow { background-color: rgb(240, 240, 240); } QLabel#title { color: black; padding-top: 16px; margin-bottom: 10px; font-weight: bold; text-align: center; } QLabel#description { color: gray; margin-left: auto; margin-right: auto; max-width: 640px; min-height: 2ex; text-align: center; } ''') def add_navigation_items(navigation_interface, card_groups): """Helper function to populate the navigation interface with items.""" for i, group in enumerate(card_groups): pos = NavigationItemPosition.BOTTOM if i == len(card_groups)-1 else None for j, card in enumerate(group.cards()): icon_path = ':/icon.png' if j % 2 == 0 else '' name = f"{group.title.replace(' ', '_')}_card_{j}" slot = lambda checked=False, c=card: print(f'Selected {c}') item = navigation_interface.addItem( route_key=name.lower(), icon=QIcon(icon_path), text=card.text(), onClick=slot, position=pos ) if isinstance(card, SwitchSettingCard): item.switchButton.setVisible(True) navigation_interface.setCurrentSelectedRouteKey('home_page_card_0'.lower()) app = QApplication([]) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 上述脚本定义了一个具有响应式菜单系统的主窗口类,并设置了样式表来自定义外观。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值