QT开发之全局窗口和相关问题

1、原因

有时候在主界面需要操作其它子对话框里面的控件,使用信号和槽或者其它方法都没有效果

这样原因就是创建显示对话框的对象和信号槽中使用的子对话框对象不是同一个导致的,有时候子对话框的对象显示可能也不在主界面中,所以使用全局对象这种方式保证在任何地方都能调用子对话框中的所有控件,

也可以使用QT自带的qApp功能,这里只讲创建全局窗口对象的方式

2、创建全局窗口的方式

extern EQDialog *g_Eqdig;
EQDialog *g_Eqdig = NULL;

然后在构造函数中添加:
g_Eqdig = new EQDialog(this);

然后在设置显示窗口对话框:
g_Eqdig->setWindowTitle("WLA");
        g_Eqdig->setAttribute(Qt::WA_DeleteOnClose);
        g_Eqdig->setWindowModality(Qt::ApplicationModal);
        g_Eqdig->show();

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt5窗口应用程序中的对话框默认是由PyQt5库提供的几种类型。这些对话框有标题、消息和按钮,并且按钮的文字是英文的,它们包括信息对话框(information)、问答对话框(question)、警告对话框(warning)、严重错误对话框(critical)和关于对话框(about)。这些对话框的按钮可以根据需要进行重写,但在本次开发中没有相关需求。 如果你想对子窗口进行配置,在子窗口的.ui文件生成的py文件中的setupUi方法中,你可以对Form进行一些配置。例如,你可以使用以下代码为窗口配置一些标志(flags): ``` Form.setWindowFlags(QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.MSWindowsFixedSizeDialogHint | QtCore.Qt.Tool) ``` 另外,你也可以使用以下代码将窗口设置为应用程序模态(Application Modal)模式,这意味着只有在当前子窗口被关闭或隐藏之后,用户才能与其他窗口进行交互: ``` Form.setWindowModality(QtCore.Qt.ApplicationModal) ``` 另外,如果你想在程序的入口处进行一些全局配置,例如启用高DPI缩放(Enable High DPI Scaling),你可以使用以下代码: ``` QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling) ``` 综上所述,在Qt5窗口应用程序中,你可以使用默认的对话框类型,也可以根据需要对对话框的按钮进行重写。同时,你还可以对子窗口进行一些配置,包括设置窗口标志和窗口模态。此外,你还可以在程序的入口处进行一些全局配置,例如启用高DPI缩放。 : PyQt5默认的几种弹出式对话框 : 在子窗口.ui文件生成的py文件中配置Form : 在程序的入口处添加配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值