erstmal, ein Ausschnitt aus meinem Programm als Grundlage (ich hoffe, ich habe es ohne Fehler runtergekürzt !):
Code: Alles auswählen
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui
from mainwindow import Ui_MainWindow
import editdata as edw # QWidget
class MainWindow(QtGui.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.current_base_data = 0
...
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.show()
def action_of_new_button(self): # Slot in Ui_MainWindow
edit_widget = ed.EditData() # QWidget in Modul editdata=ed
...
def main():
app = QtGui.QApplication(sys.argv)
ex = MainWindow()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Weg Nr. 1:
lokale Variable edit_widget global definiert:
Code: Alles auswählen
global edit_widget
edit_widget = ed.EditData()
Weg Nr. 2:
Ich mache edit_widget zum Instanz-Attribut:
Code: Alles auswählen
self.edit_widget = ed.EditData()
Weg 3:
Ich definiere edit_widget global in der Klassen-Definition:
Code: Alles auswählen
class MainWindow(QtGui.QMainWindow):
edit_widget = QObject
...
def __init__(self):
...
def action_of_new_button(self):
edit_widget = ed.EditData()
Nur weiss ich jetzt nicht, wie man es richtig macht. Die QObject-Methode erscheint mir am sinnvollsten ? Wenn das richtig ist, hätte ich dann direkt noch eine Frage: gibt es im "normalen" Python auch so etwas wie das QObject in Qt ?
Freundliche Grüße
mephisto-online
P.S.: Wenn noch irgend etwas mit meiner "Python-Terminologie" nicht stimmt oder unverständlich ist, bitte ich um Korrektur.