zoukankan      html  css  js  c++  java
  • 读Pyqt4教程,带你入门Pyqt4 _005

    对话框窗体或对话框是现代GUI应用不可或缺的一部分。dialog定义为两个或多个人之间的交谈。在计算机程序中dialog是一个窗体,用来和程序“交谈”。对话框用来输入数据、修改数据、改变程序设置等等。对话框是用户和计算机程序沟通的重要手段。

    QColorDialog

    颜色对话框为定制颜色提供一个对话框组件。

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    # colordialog.py
    
    import sys
    from PyQt4 import QtGui
    from PyQt4 import QtCore
    
    
    class Example(QtGui.QWidget):
    
        def __init__(self):
            super(Example, self).__init__()
    
            self.initUI()
    
        def initUI(self):
    
            color = QtGui.QColor(0, 0, 0)
    
            self.button = QtGui.QPushButton('Dialog', self)
            self.button.setFocusPolicy(QtCore.Qt.NoFocus)
            self.button.move(20, 20)
    
            self.connect(self.button, QtCore.SIGNAL('clicked()'),
                self.showDialog)
            self.setFocus()
    
            self.widget = QtGui.QWidget(self)
            self.widget.setStyleSheet("QWidget { background-color: %s }"
                % color.name())
            self.widget.setGeometry(130, 22, 100, 100)
    
            self.setWindowTitle('ColorDialog')
            self.setGeometry(300, 300, 250, 180)
    
    
        def showDialog(self):
    
            col = QtGui.QColorDialog.getColor()
    
            if col.isValid():
                self.widget.setStyleSheet("QWidget { background-color: %s }"
                    % col.name())
    
    
    if __name__ == '__main__':
    
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        ex.show()
        app.exec_()

    该例子显示一个按钮和一个 QWidge 对象。组件的背景设为黑色,我们可以用 QColorDialog 来改变它的背景。

    color = QtGui.QColorDialog.getColor()

    这行代码将会弹出一个 QColorDialog

    if col.isValid():
        self.widget.setStyleSheet("QWidget { background-color: %s }"
            % col.name())

    检查颜色是否有效,如果点击了取消按钮,将返回无效的颜色。如果颜色有些,我们使用样式修改背景颜色。

    QFontDialog

    QFontDialog 是一个用来选择字体的对话框组件。

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    # fontdialog.py
    
    import sys
    from PyQt4 import QtGui
    from PyQt4 import QtCore
    
    
    class Example(QtGui.QWidget):
    
        def __init__(self):
            super(Example, self).__init__()
    
            self.initUI()
    
        def initUI(self):
    
            hbox = QtGui.QHBoxLayout()
    
            button = QtGui.QPushButton('Dialog', self)
            button.setFocusPolicy(QtCore.Qt.NoFocus)
            button.move(20, 20)
    
            hbox.addWidget(button)
    
            self.connect(button, QtCore.SIGNAL('clicked()'), self.showDialog)
    
            self.label = QtGui.QLabel('Knowledge only matters', self)
            self.label.move(130, 20)
    
            hbox.addWidget(self.label, 1)
            self.setLayout(hbox)
    
            self.setWindowTitle('FontDialog')
            self.setGeometry(300, 300, 250, 110)
    
    
        def showDialog(self):
    
            font, ok = QtGui.QFontDialog.getFont()
            if ok:
                self.label.setFont(font)
    
    
    if __name__ == '__main__':
    
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        ex.show()
        app.exec_()

    该例子中,我们有一个按钮和一个标签。我们用 QFontDialog 改变标签的字体。

    hbox.addWidget(self.label, 1)

    我们把标签加入到水平框布局中。设置延展因素为1,当我们选择不同的字体时,文字可能变得更大。否则标签可能显示不完全。

    if ok:
        self.label.setFont(font)

    如果点击确定,标签的字体将会改变。

    QFileDialog

    QFileDialog 允许用户选择文件或文件夹,可选择文件来打开和保存。

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    # openfiledialog.py
    
    import sys
    from PyQt4 import QtGui
    from PyQt4 import QtCore
    
    
    class Example(QtGui.QMainWindow):
    
        def __init__(self):
            super(Example, self).__init__()
    
            self.initUI()
    
        def initUI(self):
    
            self.textEdit = QtGui.QTextEdit()
            self.setCentralWidget(self.textEdit)
            self.statusBar()
            self.setFocus()
    
            openFile = QtGui.QAction(QtGui.QIcon('open.png'), 'Open', self)
            openFile.setShortcut('Ctrl+O')
            openFile.setStatusTip('Open new File')
            self.connect(openFile, QtCore.SIGNAL('triggered()'), self.showDialog)
    
            menubar = self.menuBar()
            fileMenu = menubar.addMenu('&File')
            fileMenu.addAction(openFile)
    
            self.setGeometry(300, 300, 350, 300)
            self.setWindowTitle('OpenFile')
    
        def showDialog(self):
    
            filename = QtGui.QFileDialog.getOpenFileName(self, 'Open file',
                        '/home')
            fname = open(filename)
            data = fname.read()
            self.textEdit.setText(data)
    
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    ex.show()
    app.exec_()

    这个例子显示一个菜单,中间放置一个文本编辑框,还有一个状态栏。状态机仅为了设计目的显示。菜单项显示 QFileDialog 来选择文件,文件的内容加载进文本编辑器。

    class Example(QtGui.QMainWindow):
    
        def __init__(self):
            super(Example, self).__init__()

    这个例子建立在 QMainWindow 组件上,因为我们需要在中间设置文本编辑器。

    fname = open(filename)
    data = fname.read()
    self.textEdit.setText(data)

    读取选择的文件,并把文件内容放入文本编辑器。

    fname = open(filename)
    data = fname.read()
    self.textEdit.setText(data)

    读取选择的文件,并把文件内容放入文本编辑器。

    PyQt4教程这的部分我们致力于布局管理。

     

     

    本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 
    转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4528239.html

     

     

  • 相关阅读:
    es6 学习笔记3
    flex 子元素和父元素的高度相同问题
    vue 笔记2
    vue 子父组件之间的通信
    vue+webpack 错误笔记
    vue 学习新笔记
    mongoDB 使用学习笔记
    express 学习笔记
    多态
    static修饰符与final修饰符
  • 原文地址:https://www.cnblogs.com/superdo/p/4528239.html
Copyright © 2011-2022 走看看