`
scm002
  • 浏览: 318648 次
社区版块
存档分类
最新评论

PyQt4 QMainWindow()

 
阅读更多

#!/usr/bin/python
#--coding:GBK--

from PyQt4.QtGui import * 
from PyQt4.QtCore import * 
import sys,os 
 
class MainWindow(QMainWindow): 
 def __init__(self,parent=None): 
  #super(MainWindow,self).__init__(parent)
  QMainWindow.__init__(self,parent)
  self.setWindowTitle("QMainWindow")
  self.setWindowIcon(QIcon(r"C:\shiquan\PyQt\new_test\pic\winlearn.png"))
  self.text=QTextEdit() 
  self.setCentralWidget(self.text) 
       
  self.createActions() 
  self.createMenus() 
  self.createToolBars() 
      
 def createActions(self): 
  self.fileOpenAction=QAction(QIcon(r"C:\shiquan\PyQt\new_test\pic\beyone.png"),"打开",self) 
  self.fileOpenAction.setShortcut("Ctrl+O") 
  self.fileOpenAction.setStatusTip("打开一个文件") 
  self.connect(self.fileOpenAction,SIGNAL("triggered()"),self.slotOpenFile) 

  self.fileNewAction=QAction(QIcon(r"C:\shiquan\PyQt\new_test\pic\cc.png"),"新建",self) 
  self.fileNewAction.setShortcut("Ctrl+N") 
  self.fileNewAction.setStatusTip("新建一个文件") 
  self.connect(self.fileNewAction,SIGNAL("triggered()"),self.slotNewFile) 
      
  self.fileSaveAction=QAction(QIcon(r"C:\shiquan\PyQt\new_test\pic\ctrix.png"),"保存",self) 
  self.fileSaveAction.setShortcut("Ctrl+S") 
  self.fileSaveAction.setStatusTip("保存文件") 
  self.connect(self.fileSaveAction,SIGNAL("triggered()"),self.slotSaveFile) 

  self.exitAction=QAction(QIcon(r"C:\shiquan\PyQt\new_test\pic\flash.png"),"退出",self) 
  self.exitAction.setShortcut("Ctrl+Q") 
  self.setStatusTip("退出") 
  self.connect(self.exitAction,SIGNAL("triggered()"),self.close) 
 
  self.cutAction=QAction(QIcon(r"C:\shiquan\PyQt\new_test\pic\intel.png"),"剪切",self) 
  self.cutAction.setShortcut("Ctrl+X") 
  self.cutAction.setStatusTip("剪切到粘贴板") 
  self.connect(self.cutAction,SIGNAL("triggered()"),self.text.cut) 

  self.copyAction=QAction(QIcon(r"C:\shiquan\PyQt\new_test\pic\pdf.png"),"复制",self) 
  self.copyAction.setShortcut("Ctrl+C") 
  self.copyAction.setStatusTip("复制到粘贴板") 
  self.connect(self.copyAction,SIGNAL("triggered()"),self.text.copy) 
 
  self.pasteAction=QAction(QIcon(r"C:\shiquan\PyQt\new_test\pic\pad.png"),"粘贴",self) 
  self.pasteAction.setShortcut("Ctrl+V") 
  self.pasteAction.setStatusTip("粘贴内容到当前处") 
  self.connect(self.pasteAction,SIGNAL("triggered()"),self.text.paste) 

  self.aboutAction=QAction(QIcon(r"C:\shiquan\PyQt\new_test\pic\flash.png"),"关于",self) 
  self.connect(self.aboutAction,SIGNAL("triggered()"),self.slotAbout) 

 def createMenus(self): 
  fileMenu=self.menuBar().addMenu("文件")
  newMenu = QMenu(fileMenu)
  newMenu.setTitle("New")
  newMenu.addAction("New Word")
  newMenu.addAction("New Excel")
  fileMenu.addMenu(newMenu)
  
  fileMenu.addAction(self.fileNewAction) 
  fileMenu.addAction(self.fileOpenAction) 
  fileMenu.addAction(self.fileSaveAction) 
  fileMenu.addAction(self.exitAction) 

  editMenu=self.menuBar().addMenu("编辑")
  editMenu.addAction(self.copyAction) 
  editMenu.addAction(self.cutAction) 
  editMenu.addAction(self.pasteAction) 

  aboutMenu=self.menuBar().addMenu("帮助") 
  aboutMenu.addAction(self.aboutAction) 
 
 def createToolBars(self): 
  fileToolBar=self.addToolBar("File") 
  fileToolBar.addAction(self.fileNewAction) 
  fileToolBar.addAction(self.fileOpenAction) 
  fileToolBar.addAction(self.fileSaveAction) 

  editTool=self.addToolBar("Edit") 
  editTool.addAction(self.copyAction) 
  editTool.addAction(self.cutAction) 
  editTool.addAction(self.pasteAction)

  aboutTool=self.addToolBar("About") 
  aboutTool.addAction(self.aboutAction) 

 def slotNewFile(self): 
  #newWin=MainWindow() 
  #newWin.show() 
  os.popen("notepad")
 
 def slotOpenFile(self): 
  fileName=QFileDialog.getOpenFileName(self,"Open file dialog",".","Python file:(*.py)")
  if os.path.exists(fileName):
   data = open(fileName).read()
   print ("You select file:",fileName)
   self.text.setText(data) 
  else:
   print("No file sepcified!")
   pass

 def loadFile(self,fileName): 
  file=QFile(fileName) 
  if file.open(QIODevice.ReadOnly|QIODevice.Text): 
   textStream=QTextStream(file) 
   while textStream.atEnd()==False: 
    self.text.append(textStream.readLine()) 

 def slotSaveFile(self): 
  #pass 
  save_fileName = QFileDialog.getSaveFileName(self,"Save Image",".","Image Files(*.py)")
  self.text.setText(save_fileName)
  
 
 def slotAbout(self): 
  QMessageBox.about(self,"about me","这是我们的第一个例子")
       
 def closeEvent(self,event):
  reply = QMessageBox.question(self,"Message","Are you sure to quit?",QMessageBox.Yes,QMessageBox.No)
  if reply == QMessageBox.Yes:
   event.accept()
  else:
   event.ignore()
   
app=QApplication(sys.argv) 
main=MainWindow()
main.resize(500,600) 
main.show() 
app.exec_() 

 

分享到:
评论

相关推荐

    浅谈pyqt5在QMainWindow中布局的问题

    4. 最后,将这个带有布局的QWidget设置为QMainWindow的中央部件: ```python self.setCentralWidget(widget) ``` 通过以上步骤,我们就可以在QMainWindow中使用QGridLayout,QHBoxLayout或QVBoxLayout了。布局...

    PyQt5窗口无边框+窗口拖动+窗口拉伸全部实现

    首先,我们需要了解PyQt5中的`QMainWindow`类,它是PyQt5中用于创建主窗口的标准类,通常包含了标题栏、菜单栏、工具栏等元素。但在某些场景下,我们希望去除这些标准元素,这就需要用到无边框窗口。要实现无边框...

    对PyQt5中的菜单栏和工具栏实例详解

    在这一部分,我们学习创建状态栏,菜单栏和工具栏。一个菜单是位于菜单栏的一组命令。一个工具栏有一些按钮,这些按钮在应用程序中拥有一些常用命令。... from PyQt5.QtWidgets import QMainWindow, QAppli

    PyQt4-4.11.4-cp27-cp27m-win32

    **PyQt4 框架详解** PyQt4 是一个 Python 模块,它提供了对 Qt 库的接口,使得 Python 开发者可以利用 Qt 的强大功能构建图形用户界面(GUI)应用程序。Qt 库是跨平台的 C++ 库,广泛应用于桌面、移动和嵌入式设备...

    PyQt4-4.11.4-cp27-cp27m-win_amd64

    PyQt4是一个强大的Python绑定库,它为Python程序员提供了对Qt库的访问,Qt库是Qt公司开发的一个跨平台的应用程序开发框架。标题中的"PyQt4-4.11.4-cp27-cp27m-win_amd64"表明这是针对Python 2.7版本、采用CPython...

    PYQT4 安装包

    PYQT4是一个强大的Python库,用于创建图形用户界面(GUI)应用程序。它是Qt库的Python绑定,由Trolltech(现为The Qt Company)开发,提供了丰富的组件和功能,使得开发者能够轻松地构建桌面应用。在Python 2.7及更...

    pyqt4 python3.7版本

    2. **导入模块**:在Python脚本中,需要导入相应的PyQt4模块,例如`from PyQt4.QtGui import QApplication, QMainWindow`。 3. **创建窗口**:通过继承QMainWindow或QDialog等类,可以创建主窗口和对话框。 4. **...

    PyQt5基本窗口控件—–QMainWindow

    在PyQt5中,提供了三种窗口类型,QMainWindow,QWidget和QDialog,三个类都是用来创建窗口的,可以直接使用,也可以继承后再使用 QMainWindow:包含菜单栏,工具栏,状态栏和标题栏。是最常见的窗口形式,通常被用作...

    python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择

    PyQt中MainWindow, QWidget以及Dialog的区别和选择 1. Qt界面分类 在Qt Designer设计界面时,首先需要选择界面模板,主要分为三个类: Main Window Widget Dialog 2. 三种模板的区别(官方文档介绍) MainWindow ...

    PyQt4精彩实例源码

    1. **窗口创建**:PyQt4中的`QMainWindow`类是构建复杂用户界面的基础,你可以从中学习如何初始化窗口,并设置窗口标题、大小等属性。 2. **控件使用**:PyQT4提供了多种控件,如按钮(QPushButton)、文本框...

    PyQt4 精彩实例分析

    ### PyQt4 精彩实例分析 #### 实例1:HelloKitty! 在这个简单的实例中,我们通过构建一个带有按钮的对话框来展示Qt的基本编程流程。用户点击按钮后,程序将退出。 **代码解析** 1. **导入必要的库:** ```...

    PyQt4-4.11.4-gpl-Py3.4-Qt4.8.7-x32.rar

    PyQt4的组件包括但不限于QApplication(应用程序的核心)、QWidget(所有GUI组件的基础类)、QMainWindow(通常用于创建主窗口)、QPushButton(按钮)、QLineEdit(文本输入框)、QTextEdit(多行文本编辑器)、...

    PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x32

    PyQt4是一个强大的Python绑定库,它使得Python程序员能够利用Qt库来开发用户界面和图形应用程序。这个安装包“PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x32”是为Python 2.7版本设计的,与Qt 4.8.7版本兼容,并且适用于32位...

    对PyQt5基本窗口控件 QMainWindow的使用详解

    PyQt5中,主要使用以下三个类来创建窗口,可以直接使用,也可以继承后再使用 QMainWindow QWidget QDialog QMainWindow QMainWindow可以包含菜单栏,工具栏,状态栏,标题栏等,是GUI程序的主窗口。 如果我们需要...

    Python3.x+Pyqt5实现主窗体(QMainWindow类)里的分割器QSplitter动态载入子窗体(QWidget类),还实现了导航栏抽屉效果

    本教程主要聚焦于使用PyQt5的QMainWindow类构建主窗体,并结合QSplitter来动态加载子窗体(QWidget类),同时实现一种导航栏抽屉效果。下面我们将详细探讨这些知识点。 1. **QMainWindow类**: QMainWindow是PyQt5...

    PyQt4 精彩实例分析的26个例子

    PyQt4是Python语言中用于开发跨平台图形用户界面应用程序的一个强大的框架。它采用Qt库,由Nokia开发,并且广泛应用于桌面应用程序开发。本文将围绕给定文件中的26个实例详细分析PyQt4在各种场景中的应用。 实例1 ...

    Getting_Started_With_PyQt4

    **PyQt4 入门指南** PyQt4 是一个 Python 接口库,它使得 Python 程序员能够利用 Qt 库来开发图形用户界面(GUI)应用程序。Qt 库是 C++ 开发的,但通过 PyQt4,Python 开发者可以享受到其丰富的功能而无需掌握 C++...

    PyQt4 精彩实例分析26个例子

    ### PyQt4精彩实例分析知识点概览 #### 一、PyQt4简介 PyQt4是一个Python绑定库,用于Qt框架的开发。它提供了一种高效、便捷的方式来开发跨平台的应用程序。Qt是一个广泛使用的C++图形用户界面工具包,而PyQt4允许...

    PyQt4入门指南 PDF中文版.rar_pyqt_python

    **PyQt4入门指南** PyQt4是Python编程语言中用于构建图形用户界面(GUI)的应用程序的一个库,它是Qt库的Python绑定。Qt库是由Trolltech(现为The Qt Company)开发的一个跨平台的C++框架,广泛应用于Windows、...

Global site tag (gtag.js) - Google Analytics