PyQt5 QDialog ,Qwidget,去除右上角问号,关闭按钮X。

本文介绍如何在PyQt中设置窗口按钮,包括最小化、最大化和关闭按钮,并提供了示例代码。通过简单的设置,可以自定义窗口外观。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

只需要在自己代码初始化里加上一句就行。
比如,中间的 | 是选择多个。
self.setWindowFlags(Qt.WindowMinMaxButtonsHint | Qt.WindowCloseButtonHint)

class ProgressBar(QDialog):
    def __init__(self):
        QDialog.__init__(self)
        self.setWindowFlags(Qt.WindowMinMaxButtonsHint | Qt.WindowCloseButtonHint)
        self.setGeometry(800, 500, 400, 150)
        self.setWindowTitle(u'正在上传,请稍等')
        

这个例子是显示的,其他的一些选择如下,只需要替换即可。

setWindowFlags ( Qt::WindowFlags type )
Qt.FrameWindowHint:没有边框的窗口
Qt.WindowStaysOnTopHint://总在最上面的窗口
Qt.CustomizeWindowHint://自定义窗口标题栏,以下标志必须与这个标志一起使用才有效,否则窗口将有默认的标题栏
Qt.WindowTitleHint:显示窗口标题栏
Qt.WindowSystemMenuHint://显示系统菜单
Qt.WindowMinimizeButtonHint://显示最小化按钮
Qt.WindowMaximizeButtonHint://显示最大化按钮
Qt.WindowMinMaxButtonsHint://显示最小化按钮和最大化按钮
Qt.WindowCloseButtonHint://显示关闭按钮
Qt.Drawer://去掉窗口左上角的图标,右上角的最大化最小化按钮(好像关闭按钮会变个样。。。)
setWindowFlags(Qt::FramelessWindowHint);直接隐藏掉
 

### 如何在 QT 中使用 Message Box #### 创建简单的消息框 为了展示如何创建并显示一个简单的消息框,在 Python 的 PyQt5 库中可以利用 `QMessageBox` 类。下面是一个基础的例子,展示了当用户触发某个事件时弹出警告信息的方式: ```python import sys from PyQt5 import QtWidgets class Example(QtWidgets.QWidget): def __init__(self): super().__init__() btn = QtWidgets.QPushButton('Show MessageBox', self) btn.clicked.connect(self.show_message_box) def show_message_box(self): reply = QtWidgets.QMessageBox.warning( None, 'Warning Title', 'This is a warning message!', QtWidgets.QMessageBox.Ok ) if reply == QtWidgets.QMessageBox.Ok: print('User clicked Ok') if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) ex = Example() ex.show() sys.exit(app.exec_()) ``` 此代码片段定义了一个按钮,按下该按钮后会调用 `show_message_box()` 方法来打开带有“Ok”选项的警告对话框[^1]。 #### 使用不同类型的预设图标 除了上述提到的基础形式外,还可以通过设置不同的参数来自定义消息框的行为和外观。比如,可以通过传递特定常量给构造函数中的第三个参数指定图标样式(如问号、错误等),以及调整最后一个参数提供多种响应按钮组合。 对于严重程度较高的情况,例如程序遇到致命问题无法继续运行,则应采用更为严肃的通知方式——临界状态提示(`critical`)。这通常意味着应用程序即将终止或发生了不可恢复的操作失败: ```python reply = QtWidgets.QMessageBox.critical( None, "Critical Error", "An unexpected error has occurred!", QtWidgets.QMessageBox.Abort | QtWidgets.QMessageBox.Retry | QtWidgets.QMessageBox.Ignore ) ``` 这段代码将会呈现一个具有红色感叹号图标的窗口,并给出三个可能的选择供用户决定下一步行动[^2]。 #### 自定义对话框逻辑处理 如果希望进一步增强交互体验或者实现更复杂的功能需求,可以选择继承自 `QDialog` 来构建自己的对话框类。这样不仅可以自由设计界面布局,还能灵活控制内部组件之间的协作关系,从而满足各种应用场景下的特殊要求[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值