ws1964
Hacker
Hallo,
Ich probiere mich gerade in der Programmierung von Python und versuche Dialoge mittels QT zu erstellen und dann ueber Python aufzurufen.
Mein System: openSuse 10.2
QT-version: QT4.3.2
QT-Designer: 4.3.2
PyQt-Version: 4.4.3
sip-version: 4.4.7
Meine Vorgehensweise:
Im Designer erstelle ich einen Dialog mit nur einem "OK" Button.
Speichere den Dialog unter "frmTest.ui" ab.
Danach uebersetze ich den Dialog:
..und erhalte folgende Datei, die ich nicht editiere oder aendere!
Im geichen Pfad steht mein Programm, welches die Form aufrufen soll.
Ich mache die Datei mit "chmod" ausfuehrbar und erhalte folgende Fehlermeldung:
Wie gesagt, den uebersetzten Quellcode (mittels pyuic4) habe ich nach der Uebersetzung nicht angefasst.
Hat hier schon jemand erfahrungen gesammelt?
Danke an alle.
Wolf
Ich probiere mich gerade in der Programmierung von Python und versuche Dialoge mittels QT zu erstellen und dann ueber Python aufzurufen.
Mein System: openSuse 10.2
QT-version: QT4.3.2
QT-Designer: 4.3.2
PyQt-Version: 4.4.3
sip-version: 4.4.7
Meine Vorgehensweise:
Im Designer erstelle ich einen Dialog mit nur einem "OK" Button.
Speichere den Dialog unter "frmTest.ui" ab.
Danach uebersetze ich den Dialog:
Code:
pyuic4 -o frmDialog.py frmtest.ui
Code:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'frmtest.ui'
#
# Created: Sat Sep 6 13:29:17 2008
# by: PyQt4 UI code generator 4.4.3
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
class Ui_frmTest(object):
def setupUi(self, frmTest):
frmTest.setObjectName("frmTest")
frmTest.resize(600, 188)
self.befOK = QtGui.QPushButton(frmTest)
self.befOK.setGeometry(QtCore.QRect(300, 110, 261, 61))
self.befOK.setObjectName("befOK")
self.retranslateUi(frmTest)
QtCore.QMetaObject.connectSlotsByName(frmTest)
def retranslateUi(self, frmTest):
frmTest.setWindowTitle(QtGui.QApplication.translate("frmTest", "Test", None, QtGui.QApplication.UnicodeUTF8))
self.befOK.setText(QtGui.QApplication.translate("frmTest", "&OK", None, QtGui.QApplication.UnicodeUTF8))
self.befOK.setShortcut(QtGui.QApplication.translate("frmTest", "Alt+O", None, QtGui.QApplication.UnicodeUTF8))
Code:
#!/usr/bin/python
import sys
from PyQt4 import QtGui
from frmDialog import Ui_frmTest as Dlg
class MeinDialog(QtGui.QDialog, Dlg):
def __init__(self):
QtGui.__init__("")
self.setupUi(self)
app=QtGui.QApplication(sys.argv)
dialog=MeinDialog()
dialog.show(frmTest)
sys.exit(app.exec_())
Code:
wolf@linux-wolf:~/Documents/python/frmTest> ./frmtestaufruf.py
Traceback (most recent call last):
File "./frmtestaufruf.py", line 15, in <module>
dialog=MeinDialog()
File "./frmtestaufruf.py", line 12, in __init__
self.setupUi(self)
File "/home/wolf/Documents/python/frmTest/frmDialog.py", line 14, in setupUi
frmTest.setObjectName("frmTest")
RuntimeError: underlying C/C++ object has been deleted
Wie gesagt, den uebersetzten Quellcode (mittels pyuic4) habe ich nach der Uebersetzung nicht angefasst.
Hat hier schon jemand erfahrungen gesammelt?
Danke an alle.
Wolf