我正在PyQt的用户界面上工作,我遇到了一些试图使用QDialog的问题。基本上我有一个主小部件和一个子小部件,保存在单独的.py文件中;当我点击主窗口小部件中的某个按钮时,我想要打开子窗口小部件。这似乎是开放的罚款。PyQt QDialog - 返回一个值并从对话框中关闭

问题出现在返回和关闭。我在我的子控件上有一个“提交”按钮 - 当用户点击这个按钮时,我想返回一个值(从他们输入的字典)到主控件,并关闭子控件。我似乎无法用我现在的代码做这些事情。

在主窗口部件的代码适用位(可以添加更多,使其自成体系,如果问题不是很明显):

import SGROIWidget_ui

def retranslateUi(self, ROIGUI):

#ShowGroupROI is a push-button

self.ShowGroupROI.clicked.connect(self.ShowGroupROIFunction)

def ShowGroupROIFunction(self):

dialog = QDialog()

dialog.ui = SGROIWidget_ui.Ui_ShowGroupWidget()

dialog.ui.setupUi(dialog)

dialog.setAttribute(QtCore.Qt.WA_DeleteOnClose)

if dialog.exec_():

roiGroups=dialog.Submitclose()

print(roiGroups)

dialog.accept()

我似乎永远if语句后打码。

从我的子插件的应用代码(包括多一点在这里):

try:

_fromUtf8 = QtCore.QString.fromUtf8

except AttributeError:

def _fromUtf8(s):

return s

try:

_encoding = QtGui.QApplication.UnicodeUTF8

def _translate(context, text, disambig):

return QtGui.QApplication.translate(context, text, disambig, _encoding)

except AttributeError:

def _translate(context, text, disambig):

return QtGui.QApplication.translate(context, text, disambig)

class Ui_ShowGroupWidget(QtGui.QWidget):

def __init__(self):

QtGui.QWidget.__init__(self)

self.setupUi(self)

def setupUi(self, ShowGroupWidget):

#sets up Submit button

def retranslateUi(self, ShowGroupWidget):

self.Submit.clicked.connect(self.Submitclose)

def Submitclose(self):

roiGroups={}

#roiGroups gets set up here as a dictionary

#It prints nicely from here so I know it's not the issue

return roiGroups

#I don't know if I can just do a return statement like this?

self.close()*

*我试图ex.close()在这里很好,但在运行这个小部件时,不承认前作为对话。它似乎不应该因为return语句而到达这一行,但我不知道在用户点击“submit”后如何关闭这个小部件。或者,我的主窗口小部件中的dialog.accept()是否可以处理?

最后一件事 - 我需要这个在我的子小部件中,因为它是通过我的主小部件来运行吗?

if __name__=='__main__':

app=QtGui.QApplication(sys.argv)

ex=Ui_ShowGroupWidget()

ex.show()

sys.exit(app.exec_())

在此先感谢!我对PyQt非常陌生,所以希望这个文件有点清晰。

2015-02-24

Emily C

qdialog 返回值_PyQt QDialog - 返回一个值并从对话框中关闭相关推荐

  1. oracle学习-存储过程返回一个值,和返回一个结果集

    一.返回一个值 --创建存储过程create or replace procedure sp_hu_test(spcode in varchar2,spname out varchar2)is beg ...

  2. 返回多个不同类型参数的值(out)可变参数一维数组( params )把值从方法中带出(ref) 方法递归(方法自己调用自己与循坏类似注意return每次只能跳出一个方法))...

    //out参数  如果需要在方法中,返回多个值,并且是不同类型,可以使用out参数帮助我们返回.  out参数就是帮助我们在方法中返回多个不同类型的值.  out参数必须在方法的内部为其赋值,而在方法 ...

  3. C语言试题三十七之求除一个2×m整型二维数组中最大元素的值,并将此值返回调用函数。

    1. 题目 请编写一个函数function,它的功能是:求除一个2×m整型二维数组中最大元素的值,并将此值返回调用函数. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中 ...

  4. linux search用法,在Linux中使用ldapsearch只返回一个值

    使用OPENLDAP服务器我想用ldapsearch从中检索信息.我创建了一个名为iduriclass的自定义类,该类用于存储id和uri.在我的ldapsearch命令中,我希望它只返回指定id的u ...

  5. VB6.0 让函数返回一个值

    帮一客户修改VB6.0程序,需要定义一个函数,并且返回一个值. 如果是Java/C#之类的工具,很容易,一个return就行.到VB这,不能直接用return,研究了一会儿,函数返回一个值的方法总结如 ...

  6. 给定一个只由 0、1、、|和^五种字符组成的字符串express,再给定一个布尔值 desired。返回express能有多少种组合方式,可以达到desired的结果。

    问题描述: 给定一个只由 0(假).1(真).&(逻辑与).|(逻辑或)和^(异或)五种字符组成的字符串express,再给定一个布尔值 desired.返回express能有多少种组合方式, ...

  7. Mysql的IF()函数:如果返回True值,返回第一个值,为False值,返回第二个值

    IF函数定义 语法 IF(condition, A, B) 如果condition为TRUE值,就返回A,如果condition为FALSE值,就返回B. 举例 添加表 create table te ...

  8. 关于for循环总是返回最后一个值问题

    // 第一种 for (let j = 0; j < 10; j++) {console.log(j); // 0-9setTimeout(function(){console.log(j); ...

  9. 【C 语言】C 项目开发代码规范 ( 形参合法性判断 | 函数返回值局部变量 | 函数中不用全局变量 | 函数中使用局部变量接收形参 | 函数返回值 | 形参作返回值 | 形参返回值处理 )

    文章目录 一.C 项目开发代码规范 一.C 项目开发代码规范 上一篇博客 [C 语言]字符串模型 ( 键值对模型 ) 中 , 完成了字符串的 键值对 查找功能 , 代码不太规范 ; C 项目开发代码规 ...

最新文章

  1. 消息 8101,级别 16,状态 1,第 1 行仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'CUSTOMER_TBL'中的标识列指定显式值。...
  2. 12-1054. 求平均值
  3. POJ 3461 kmp 应用
  4. Install OpenStack Kilo Dashboard wiht Nginx + uWSGI On RHEL7.1
  5. Unique Binary Search Trees
  6. 华为鸿蒙系统学习笔记4-方舟编译器源码下载及安装
  7. ACM PKU 1111 Image Perimeters http://acm.pku.edu.cn/JudgeOnline/problem?id=1111
  8. 克罗伊茨内(Keutznaer)的 7月28日
  9. Egret入门学习日记 --- 第十二篇(书中 5.1节 内容)
  10. openstack虚拟机迁移操作
  11. CodeSmith连接MySql数据库
  12. 百度、腾讯和阿里内部的级别和薪资待遇是什么样的?
  13. 计算机导论黄国兴百度云,计算机导论黄国兴
  14. 给出一个不多于五位的正整数,求出它是几位数
  15. 关于js数组方法的题目整理 6.24更新至题目5
  16. C语言多线程之“哲学家就餐”问题
  17. 计算机九宫格游戏怎么玩,如何玩数独九宫格游戏(四)
  18. 高等教育学:学生与教师
  19. mc是电子计算机的什么键,计算机上的mc是什么键
  20. js截取空格后面的值

热门文章

  1. svn日志中不能比较word文档
  2. 1400年前的面向对象
  3. 安卓手机卡顿怎么解决_手机卡顿怎么办,教你几招,让你的安卓机从此不再卡顿...
  4. ARM结构体系5:串行通信(双线UART)和看门狗
  5. 此刻,四川汶川的地震尚未结束......
  6. MutationObserver -- 判断vue Dom渲染完成
  7. plsa java_LDA和PLSA的区别
  8. 【JavaWeb】表单标签案例CSS(24)
  9. 炫听空间--有声读物
  10. Java中Object转换为int类型或String类型