You are not logged in.

  • Login

1

Thursday, October 8th 2009, 4:54pm

Qt Designer - Combo Box in Tree Widget

Hallo liebe Community,

ich wollte einfach mal fragen, ob sich jemand hier schon näher mit Qt und insbesondere Qt Designer beschäftigt hat. Ich würde nämlich gerne - wie im Titel beschrieben - an Stelle eines einfachen Line Edit eine Combo Box einfügen, damit der Benutzer so nicht den Inhalt einer Zelle frei sondern per Vorgabe ändern kann.

Gibt es die Möglichkeit überhaupt? Wenn ja, wie komme ich an die entsprechenden Einstellungen ran?
Jetzt schonmal großen Dank!

Gruß
Lemmi

2

Thursday, October 8th 2009, 9:27pm

Den QT Designer habe ich nicht benutzt.
Ansonsten ist eine ComboBox doch schnell gemacht:

Python Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/python
# -*- coding: utf-8 -*-
from qt import *
 
class ComboBox(QHBox):
    def __init__(self, *args):
        QHBox.__init__(self, *args)
        self.cb = QComboBox(self)
        self.cb.setMaximumWidth(120)        
        self.cb.insertItem("QComboBox")
        self.cb1 = QComboBox(self)
        self.cb1.insertStrList(["Eins", "Zwei", "Drei"])
        self.cb1.setCurrentItem(1) # for "Zwei"
        QObject.connect(self.cb1, SIGNAL('activated(int)'), self.showSel1)
        self.cb2 = QComboBox(self)
        self.cb2.insertStrList(["And", "Nobody", "Expects", "The", "..."])
        self.cb2.setEditable(True)
        self.b = QPushButton("Show", self)
        QObject.connect(self.b, SIGNAL('clicked()'), self.showSel2)
    def showSel1(self, index):
        print index
    def showSel2(self):
        print self.cb2.currentText()
 
class QWidgetsWin(QMainWindow):
 
    def __init__(self, *args):
        QMainWindow.__init__(self, *args)
        self.box = QVBox(self)
        self.widgets = [ComboBox(self.box)]
        self.setCentralWidget(self.box)
        self.adjustSize()


... zumindest so in der Art

3

Friday, October 9th 2009, 8:05am

Du hast nicht ganz verstanden, was ich meinte. Wenn man einen TreeWidget editierbar macht, kann man einzellne Einträge später per Doppelklick ändern. Das geschieht jedoch über ein LineEdit. Ich wollte nur erfragen, ob es die Möglichkeit gibt, dieses Änderung auch über eine ComboBox laufen zu lassen und wenn ja, wie ich eben diese ComboBox in das TreeWidget integriere.

Similar threads

Social bookmarks