Chinaunix首页 | 论坛 | 博客
  • 博客访问: 772131
  • 博文数量: 265
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1985
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-13 12:33
文章分类

全部博文(265)

文章存档

2011年(1)

2010年(66)

2009年(198)

我的朋友

分类: LINUX

2010-07-07 19:55:56


1. 新建工程。

打开Eric4,选择菜单Project->New新建一个叫做PyNotePad的工程,选择好工程所保存的路径后,点OK,就可以了。注:点了OK后还会弹出版本控制器的选择对话框,安装个人的不同情况来选,这里我们就选None

 

2. 制作界面

Eric4的左侧有一块区域叫做Project-Viewer, 如下图所示。

我们选中第二个Tab(Forms), 在下方的空白区域右键,选择 New form, 在下拉框中选择Main Window, 并保存成 NotePad.ui。此时,我们可以看到, QtDesigner4自动打开了。

在界面上,我使用了两个PushButtonsTextEdit控件。

 

PushButton控件上双击就可以更改PushButton所显示的名称。这里,我将这两个按钮分别设置成 Open File  Close”。我们将“Open File”这个按钮对应的objectName设置成“button_open,TextEdit控件设置成 editor_window”,将对话框窗口objectName设置成 “notepad

PyQt4下,事件处理方面的术语为信号,即signalslot。事件对应信号signal,而事件的处理函数则称为slot槽。

PyQt4有一些预定义的slot,我们可以直接用,比如退出按钮的slot,其实就是关闭对话框,这个slot已经在PyQt4中有定义了。对于这样的slot,我们不用单独写代码,在QtDesigner中就可以完成。

       在这里,我们对Close这个按钮的点击事件采用PyQt自带的处理函数。 

       在工具栏中选择编辑信号/ ,点中Close按钮,拖动鼠标,会出现如下图的情况,松开后就会出现配置连接这个对话框。将“显示从QWidget继承的信号和槽”前面的框打上勾,然后在对话框的左边选中 clicked() 对话框的右边选中close(),点击确定就好啦。此时可以按快捷键 Ctrl+R , 预览我们做的界面的效果。当我们点击Close这个按钮的时候,对话框理所当然的关掉啦~

编辑代码

 

 NotePad.ui 保存并退出QtDesigner,回到Eric4中。在Eric4左侧的Forms栏目中,选中NotePad.ui并点击鼠标右键,选择Compiled Form,就生成了Ui_NotePad.py这个文件了。

接下来,我们开始编写运行应用程序的代码。在NotePad.ui上点击鼠标右键,选择Generate Dialog Code

 

配置好后,点OK,我们就会很惊奇的看到IDE已经创建了一个叫 start.py的文件。

双击打开start.py,显示出来的代码如下:

  1. # -*- coding: utf-8 -*-  
  2.   
  3. """ 
  4. Module implementing StartQT4. 
  5. """  
  6. from PyQt4.QtGui import QMainWindow  
  7. from PyQt4.QtCore import pyqtSignature  
  8.   
  9. from Ui_NotePad import Ui_notepad  
  10.   
  11. class StartQT4(QMainWindow, Ui_notepad):  
  12.     """ 
  13.     Class documentation goes here. 
  14.     """  
  15.     def __init__(self, parent = None):  
  16.         """ 
  17.         Constructor 
  18.         """  
  19.         QMainWindow.__init__(self, parent)  
  20.         self.setupUi(self)  
  21.      
  22.     @pyqtSignature("")  
  23.     def on_button_open_clicked(self):  
  24.         """ 
  25.         Slot documentation goes here. 
  26.         """  
  27.         # TODO: not implemented yet  
  28.         raise NotImplementedError  
 

其中 on_button_open_clicked()这个函数是鼠标单击Open File的信号响应函数,在这里面我们可以任意添加我们程序能执行的操作。下面我们来修改on_button_open_clicked()函数,我希望点击它后可以弹出文件选择框,在选择文件后将文件内容显示在文本框中。代码如下:

  1. def on_button_open_clicked(self):  
  2.        """ 
  3.        Slot documentation goes here. 
  4.        """  
  5.        # TODO: not implemented yet  
  6.        dlg = PyQt4.QtGui.QFileDialog(self)  
  7.        self.filename = dlg.getOpenFileName()  
  8.        from os.path import isfile  
  9.        if isfile(self.filename):  
  10.            import codecs  
  11.            text = codecs.open(self.filename,'r','cp936').read()  
  12.            self.textEdit.setPlainText(text)  

最后,在start.py文件的开头添加 

  1. import PyQt4, PyQt4.QtGui, sys  

start.py文件的结尾添加

  1. if __name__ == "__main__":  
  2.   
  3.     app = PyQt4.QtGui.QApplication(sys.argv)  
  4.   
  5.     myapp = StartQT4()  
  6.   
  7.     myapp.show()  
  8.   
  9. sys.exit(app.exec_())  
 

 按下快捷键F2即可运行程序啦! 

 


阅读(4805) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~