2015-09-25 46 views
2

我想写一个记事本应用程序访问的QTextEdit,到目前为止,我还没有功能的GUI。我的gui的每个元素都在独立的函数中,然后在init方法中调用。 例如在create_new_file(个体经营)函数我试图从的QTextEdit .toPlainText获取文本()方法,但我怎么可以访问text_edit_area(个体经营)函数这个领域?的Python PyQt4的从功能

import sys 
from PyQt4 import QtGui, QtCore 


class Editor(QtGui.QMainWindow): 

    def __init__(self): 
     super(Editor, self).__init__() 
     self.setGeometry(100, 100, 500, 500) 
     self.setWindowTitle('Text Editor') 
     self.setWindowIcon(QtGui.QIcon('editor.png')) 

     self.statusBar() 
     self.main_menu() 
     self.text_edit_area() 
     self.toolbar() 

     self.show() 


    def main_menu(self): 

     # CREATE MAIN MENU 
     menu = self.menuBar() 

     # MENU ACTIONS 
     file_exit_action = QtGui.QAction('&Exit', self) 
     file_exit_action.setShortcut('Ctrl+Q') 
     file_exit_action.setStatusTip('Close application') 
     file_exit_action.triggered.connect(self.close_application) 

     file_new_file_action = QtGui.QAction('&New File', self) 
     file_new_file_action.setShortcut('Ctrl+N') 
     file_new_file_action.setStatusTip('Create a new file') 
     file_new_file_action.triggered.connect(self.create_new_file) 

     file_open_file_action = QtGui.QAction('&Open File', self) 
     file_open_file_action.setShortcut('Ctrl+O') 
     file_open_file_action.setStatusTip('Open file') 
     file_open_file_action.triggered.connect(self.open_file) 

     file_save_file_action = QtGui.QAction('&Save File', self) 
     file_save_file_action.setShortcut('Ctrl+S') 
     file_save_file_action.setStatusTip('Save opened file') 
     file_save_file_action.triggered.connect(self.save_file) 

     edit_undo_action = QtGui.QAction('&Undo', self) 
     edit_undo_action.triggered.connect(self.undo) 

     format_change_font_action = QtGui.QAction('&Change Font', self) 
     format_change_font_action.triggered.connect(self.change_font) 

     view_maximize_action = QtGui.QAction('&Maximize', self) 
     view_maximize_action.triggered.connect(self.maximize) 

     help_about_action = QtGui.QAction('&About', self) 
     help_about_action.triggered.connect(self.about) 


     # FILE MENU 
     file_menu = menu.addMenu('&File') 
     file_menu.addAction(file_exit_action) 
     file_menu.addAction(file_new_file_action) 
     file_menu.addAction(file_open_file_action) 
     file_menu.addAction(file_save_file_action) 


     # EDIT MENU 
     edit_menu = menu.addMenu('&Edit') 
     edit_menu.addAction(edit_undo_action) 

     # FORMAT MENU 
     format_menu = menu.addMenu('&Format') 
     format_menu.addAction(format_change_font_action) 

     # VIEW MENU 
     view_menu = menu.addMenu('&View') 
     view_menu.addAction(view_maximize_action) 

     # HELP MENU 
     help_menu = menu.addMenu('&Help') 
     help_menu.addAction(help_about_action) 


    def toolbar(self): 

     # CREATE MAIN TOOLBAR 
     tool_bar = self.addToolBar('main toolbar') 


     # TOOLBAR ACTION 
     toolbar_new_file_action = QtGui.QAction(QtGui.QIcon('new_file.png'), 
               '&New File', self) 
     toolbar_new_file_action.triggered.connect(self.create_new_file) 

     toolbar_open_file_action = QtGui.QAction(QtGui.QIcon('open_file.png'), 
               '&Open File', self) 
     toolbar_open_file_action.triggered.connect(self.open_file) 


     # ADD TOOLBAR ACTIONS 
     tool_bar.addAction(toolbar_new_file_action) 
     tool_bar.addAction(toolbar_open_file_action) 





    def text_edit_area(self): 
     text_edit = QtGui.QTextEdit() 
     self.setCentralWidget(text_edit) 



    def close_application(self): 
     choice = QtGui.QMessageBox.question(self, 
              'Confirmation', 
              'Do you really want to quit?', 
              QtGui.QMessageBox.Yes | 
              QtGui.QMessageBox.No) 
     if choice == QtGui.QMessageBox.Yes: 
      sys.exit() 
     else: 
      pass 


    def create_new_file(self): 
     print('create new file') 


    def open_file(self): 
     print('open file') 


    def save_file(self): 
     print('saving file') 


    def undo(self): 
     print('undo') 


    def maximize(self): 
     print('maximize') 


    def change_font(self): 
     print('change font') 


    def about(self): 
     print('about') 


def main(): 
    app = QtGui.QApplication(sys.argv) 
    gui = Editor() 
    sys.exit(app.exec_()) 



if __name__ == '__main__': 
    main() 
+0

'self.text_edit = QtGui.QTextEdit()',等 – ekhumoro

回答

1

您可以创建存储到的QTextEdit

self.text_edit = QtGui.QTextEdit()

参考实例属性或通过调用的QMainWindow的

0

您应该创建自己的centralWidget()方法检索参考自定义QTextEdit。一些从QTextEdit继承的类,并以您想要的方式进行个性化。

有你可以去根据许多很酷的教程。

Here是一个非常惊人的一个。最初帮助我很多。