Как через кнопки QComboBox добавить текст QTextBrowser и QLabel
Нужно что бы при нажатии на кнопки в QComboBox добавлялся текст в QTextBrowser и QLabel.
from PyQt5 import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import sys
app = QApplication(sys.argv)
mywindow = QWidget()
mywindow.resize(250, 150)
text_browser = QTextEdit()
text_browser.setHtml('h')
cursor = text_browser.textCursor()
cursor.setPosition(2000)
items = ['1', '2', '3']
combobox = QComboBox()
combobox.addItems(items)
box = QVBoxLayout()
box.addWidget(text_browser)
box.addWidget(combobox)
mywindow.setLayout(box)
mywindow.setWindowTitle('My Window')
mywindow.show()
sys.exit(app.exec_())
Проблема в том, что количество кнопок динамично и на каждую кнопку нужно назначить свою команду добавления текста в QTextBrowser и QLabel из-за будущей связи с базой данных.
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
void QComboBox::textActivated(const QString &text)
Этот сигнал отправляется, когда пользователь выбирает элемент в поле со списком.
Текст элемента передается. Обратите внимание, что этот сигнал отправляется, даже если выбор не изменен.
Если вам нужно знать, когда выбор действительно изменится, используйте сигналcurrentIndexChanged()илиcurrentTextChanged().
import sys
from PyQt5.Qt import *
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.label = QLabel()
self.text_browser = QTextEdit()
self.text_browser.setHtml('Hellow QTextEdit')
items = ['Item 1', 'Item 2', 'Item 3']
self.combobox = QComboBox()
self.combobox.addItems(items)
self.combobox.textActivated.connect(self.cb_activate) # !!! +++
layout = QVBoxLayout(self)
layout.addWidget(self.label)
layout.addWidget(self.text_browser)
layout.addWidget(self.combobox)
def cb_activate(self, text): # !!! +++
self.label.setText(text)
self.text_browser.append(text)
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWindow()
w.resize(500, 300)
w.setWindowTitle('My Window')
w.show()
sys.exit(app.exec())

