2015-09-25 28 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是一個非常驚人的一個。最初幫助我很多。