Ich habe jetzt mit hilfe eines Tutorials eine Klasse geschrieben, die etwas zeichnen kann...
wenn ich entsprechend dieses Tutorials das ganze mittels "QGridLayout" in ne GUI einfüge is alles super. Das funktioniert problemfrei. auch QBoxLayout funktioniert fast gut (setGeometry hat keine funktion???)
Mit dem Grid lässt sich jedoch nur schwer meine gewünschte GUI realisieren.
ich will diese Klasse in meine bestehende GUI einfügen
wenn ich das aber dann einfügen will wird es nicht angezeigt, Es gibt allerdings auch keine fehlermeldung.
sowohl elemente davor als auch danache werden angezeigt und funktionieren wie gewünscht. Nur meine Klasse wird nicht angezeigt.
Funktionierender Code
Code: Alles auswählen
app = QApplication(sys.argv)
form = QDialog()
slider = FractionSlider(12)
B_Verbinden = QPushButton()
B_Verbinden.setObjectName("B_Verbinden")
B_Verbinden.setText("Verbinden")
layout = QBoxLayout(0,None)
layout.addWidget(slider)
layout.addWidget(B_Verbinden)
form.setLayout(layout)
form.setWindowTitle("Fraction Slider")
form.show()
app.exec_()
...und diese Version hätte ich gerne am funktionieren.
Code: Alles auswählen
[...]
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(698, 532)
self.B_Verbinden = QPushButton(self)
self.B_Verbinden.setGeometry(QRect(150, 190, 151, 41))
self.B_Verbinden.setObjectName("B_Verbinden")
self.fractionslider = FractionSlider(denominator=12)
self.fractionslider.setGeometry(QRect(250, 180, 100, 171))
self.fractionslider.setObjectName("FractionSlider")
print ("Jetz sollte der eigentlich da sein")
[...]
app = QApplication(sys.argv)
dialog = MeinWidget()
dialog.show()
print "test"
sys.exit(app.exec_())
Die Klasse ist folgendermaßen aufgebaut:
Code: Alles auswählen
class FractionSlider(QWidget):
def __init__(self, numerator=0, denominator=10, parent=None):
super(FractionSlider, self).__init__(parent)
self.__numerator = numerator
self.__denominator = denominator
self.setFocusPolicy(Qt.WheelFocus)
self.setSizePolicy(QSizePolicy(QSizePolicy.MinimumExpanding,
QSizePolicy.Fixed))
def minimumSizeHint(self):
font = QFont(self.font())
font.setPointSize(font.pointSize() - 1)
fm = QFontMetricsF(font)
return QSize(fm.width(FractionSlider.WSTRING) *
self.__denominator,
(fm.height() * 4) + FractionSlider.YMARGIN)
def paintEvent(self, event=None):
[...]
mal wieder bitte ich um Hilfe bei der lösung des Problems oder wenigstens einer erklährung warum es nicht funktionieren kann