1. # _*_ coding:utf-8 _*_
  2. import sys
  3. from PyQt4 import QtCore,QtGui
  4. class Example(QtGui.QWidget):
  5. def __init__(self):
  6. super(Example,self).__init__()
  7. self.initUI()
  8. def initUI(self):
  9. self.button=QtGui.QPushButton('Dialog',self)
  10. self.button.setFocus()
  11. self.button.move(20,20)
  12. self.connect(self.button,QtCore.SIGNAL('clicked()'),self.showDialog)
  13. self.setFocus()
  14. self.label=QtGui.QLineEdit(self)
  15. self.label.setMaximumWidth(20)
  16. self.label.move(130,22)
  17.  
  18. self.widget=QtGui.QWidget(self)
  19. self.widget.setStyleSheet("QWidget{background-color:red}" )
  20.  
  21. grid=QtGui.QGridLayout()
  22.  
  23. grid.addWidget(QtGui.QPushButton(u'我是个按钮'),1,1)
  24. grid.addWidget(QtGui.QPushButton(u'我是个按钮'), 0, 0)
  25.  
  26. #self.setLayout(grid)
  27. self.widget.setLayout(grid)
  28. self.widget.move(150,22)
  29. self.resize(100,100)
  30. #self.widget.setGeometry(150, 22, 100, 150)
  31. self.buuton2=QtGui.QPushButton(u'设置背景色',self)
  32. self.connect(self.buuton2,QtCore.SIGNAL('clicked()'),self.changeBackground)
  33. self.buuton2.move(220,22)
  34.  
  35. self.setWindowTitle('InputDialog')
  36. self.setGeometry(300,300,350,80)
  37.  
  38. def showDialog(self):
  39. text,ok=QtGui.QInputDialog.getText(self,'Input Dialog','Enter your name');
  40. if ok:
  41. self.label.setText(str(text))
  42. def changeBackground(self):
  43. col=QtGui.QColorDialog.getColor()
  44. if col.isValid():
  45. self.widget.setStyleSheet("QWidget { background-color: %s }"
  46. % col.name())
  47.  
  48. def showDialog(self):
  49.  
  50. font, ok = QtGui.QFontDialog.getFont()
  51. if ok:
  52. self.label.setFont(font)
  53.  
  54. def showDialog(self):
  55.  
  56. filename = QtGui.QFileDialog.getOpenFileName(self, 'Open file',
  57. '/home')
  58. fname = open(filename)
  59. data = fname.read()
  60. self.textEdit.setText(data)
  61.  
  62. app=QtGui.QApplication(sys.argv)
  63. ex=Example()
  64. ex.show()
  65. app.exec_()

代码中给出输入对话框和颜色对话框的简单应用,另外两个大同小异,没有实现。这里我探索一下QWidget的复合。即在一个Qwidget中叠加多个Qwidget。

对于它们之间的事件关系我没有研究。这里仅仅关注界面构成:

  1. self.widget=QtGui.QWidget(self)
  2. self.widget.setStyleSheet("QWidget{background-color:red}" )
  3.  
  4. grid=QtGui.QGridLayout()
  5.  
  6. grid.addWidget(QtGui.QPushButton(u'我是个按钮'),1,1)
  7. grid.addWidget(QtGui.QPushButton(u'我是个按钮'), 0, 0)
  8.  
  9. #self.setLayout(grid)
  10. self.widget.setLayout(grid)
  11. self.widget.move(150,22)

这里我在主窗口里添加了一个widget,同时对这个widget使用QgridLayout进行布局管理。我发现这个widget的大小不受我代码的控制了。应该是布局管理器的规则影响。

这样同理我可以嵌套多个widget,而且通过对grid的删除可以实现选项卡的功能。666

QDialog:输入对话框、颜色对话框、字体对话框、文件对话框的更多相关文章

  1. Java开发笔记(一百三十五)Swing的文件对话框

    除了常规的提示对话框,还有一种对话框也很常见,它叫做文件对话框.文件对话框又分为两小类:打开文件的对话框.保存文件的对话框,但在Swing中它们都用类型JFileChooser来表达.下面是JFile ...

  2. MFC 文件对话框

    文件对话框的分类 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框.例如,很多编辑软件像记事本等都有"打开"选项,选择" ...

  3. MFC编程入门之十七(对话框:文件对话框)

    上一讲介绍的是消息对话框,本节讲解文件对话框.文件对话框也是很常用的一类对话框. 文件对话框的分类 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框 ...

  4. 工作总结:文件对话框的分类(C++)

    原文地址:http://www.jizhuomi.com/software/173.html 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框.例如 ...

  5. VS2010/MFC对话框:文件对话框

    文件对话框 上一讲介绍的是消息对话框,本节讲解文件对话框.文件对话框也是很常用的一类对话框. 文件对话框的分类       文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中 ...

  6. VS2010/MFC编程入门之十七(对话框:文件对话框)

    上一讲鸡啄米介绍的是消息对话框,本节讲解文件对话框.文件对话框也是很常用的一类对话框. 文件对话框的分类       文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见 ...

  7. VS2010-MFC(对话框:文件对话框)

    转自:http://www.jizhuomi.com/software/173.html 一 文件对话框的分类       文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中 ...

  8. C#线程安全打开/保存文件对话框

    在多线程单元模式(MTA)中为应用程序使用.NET OpenFileDialog和SaveFileDialog 下载FileDialogsThreadAppartmentSafe_v1.zip 如果您 ...

  9. 19.QT对话框(文件对话框,颜色对话框,字体框,自定义对话框)

    文件对话框 #include<QFileDialog> //文件对话框 void Dialog::on_pushButton_clicked() { //定义显示文件的类型 窗口标题 可供 ...

  10. QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)

    QMessageBox类: 含有Question消息框.Information消息框.Warning消息框和Critical消息框等 通常有两种方式可以来创建标准消息对话框: 一种是采用“基于属性”的 ...

随机推荐

  1. Linux内核3.11的socket busy poll机制避免睡眠切换

    Linux的网络协议栈很独立,上下通过两个接口分别和用户态以及设备相连.也能够看作是北向和南向接口...北向通过socket接口,南向通过qdisc接口(你能够觉得是上层的netdev queue,对 ...

  2. 【VMware虚拟化解决方案】配置和部署VMware ESXi5.5

    [VMware虚拟化解决方案]配置和部署VMware ESXi5.5 时间 2014-04-08 10:31:52  让"云"无处不在的博客原文  http://mabofeng. ...

  3. ExceptionLess 搭建到本地服务器

    Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP.NET,ASP.NET Core,Web Api,Web Forms,WPF,Console,MVC 等技术栈的应 ...

  4. mysql sleep连接太多怎么办

    摘要:interactive_timeout和wait_timeout参数对sleep连接的影响 interactive_timeout 参数含义:服务器关闭交互式连接前等待活动的秒数.交互式客户端定 ...

  5. 最新最全的iOS手机支付总结

    关于手机支付,我想简单总结一下,我想主要分成三大类: 第一类,就是我们最常见的应用内支付(IAP),例如APPStore里面我们可以付费下载一些APP或者游戏. 第二类,就是我们经常使用第三方支付,例 ...

  6. Python学习笔记020——数据库中的数据类型

    1 数值类型 数值类型分为有符号signed和无符号unsigned两种. 1.1 整型 int (1)bigint 极大整型(8个字节) 范围 :-2**64 ~ 2**64 - 1 -922337 ...

  7. python中的三引号

    在python中,三引号支持字符串跨多行.包含换行符号.制表符号.以及其它特殊字符 >>> hi = ''' ... this ... is a ... test ... ''' & ...

  8. codeforces#254DIV2解题报告

    今天简直大爆发啊... 吃了顿烧烤竟然这么管事. . . .. 本弱渣竟然做出来了3道,并且B题是我第一次在CF中用到算法..(曾经最多也就是贪心. . . ). 题目地址:codeforces#22 ...

  9. VS2012开发cocos游戏遇到问题汇总

    1.编译成android时.须要改动jni/android.mk,每一个cpp都改动一下太麻烦,能够让他自己主动识别. # 遍历文件夹及子文件夹的函数 define walk $(wildcard $ ...

  10. C 指向指针的指针

    #include <stdio.h> int main() { char *cBooks[] = { "C程序设计语言", "C专家编程", &qu ...