Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: zodiac от Ноябрь 16, 2008, 17:58



Название: Редактируемый QLabel
Отправлено: zodiac от Ноябрь 16, 2008, 17:58
Приветствую.
я указал параметры у qlabel:
setTextInteractionFlags(Qt::TextBrowserInteraction|Qt::TextEditorInteraction)
после этого визуально текст меняется, его можно изменить. но в свойстве text() остается первоначальное значение.
как заставить свойство text() меняться при вводе?


Название: Re: Редактируемый QLabel
Отправлено: kirill от Ноябрь 17, 2008, 14:10
Вообще странно использовать QLabel в качестве QLineEdit.
Это то же что использовать флажки вместо радио-батонов.
Компоненты для разных целей предназначены.


Название: Re: Редактируемый QLabel
Отправлено: zodiac от Ноябрь 17, 2008, 14:43
да какая разница как я использую?


Название: Re: Редактируемый QLabel
Отправлено: mikemorgunov от Ноябрь 18, 2008, 07:14
...Делал подобное на питоне, там по другому немного... но. Прога рабочая.
Код:
#!/usr/bin/python
# -*- coding: utf-8 -*-

# привязка - PyQt4
# файл  /home/mike/test.py  chmod +x test.py   запуск - ./test.py
import sys
from PyQt4 import  QtGui,QtCore

class MyWidget(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.mybutton = QtGui.QPushButton("Clear")
        self.myline = QtGui.QLineEdit()

        self.mylabel = QtGui.QLabel()     ###################   ВОТ ТУТЬ #########################

        # по клику очищается QLineEdit()
        self.connect(self.mybutton,QtCore.SIGNAL("clicked()"),self.myline,QtCore.SLOT("clear()"))

        self.mylabel = QtGui.QLineEdit()  ###################   И  ТУТЬ ##########################

        # по клику очищается QLabel()
        self.connect(self.mybutton,QtCore.SIGNAL("clicked()"),self.mylabel,QtCore.SLOT("clear()"))

        # по завершении редактирования  уходим в myfunc()
        self.connect(self.myline,QtCore.SIGNAL("editingFinished()"),self.myfunc)

        layout = QtGui.QVBoxLayout(self)
        layout.addWidget(self.mybutton)
        layout.addWidget(self.myline)
        layout.addWidget(self.mylabel)

    def myfunc(self):
        mytext = self.myline.text()
        self.mylabel.setText(mytext)

app = QtGui.QApplication(sys.argv)
widget = MyWidget()
widget.show()
sys.exit(app.exec_())


Название: Re: Редактируемый QLabel
Отправлено: Steven_Orko от Ноябрь 18, 2008, 10:35
Вас волнует как я использую? Вам задал вопрос, не знаете -- промолчите. не надо учить.
OFF: А потом все удивляются, почему ПО работает черз пятую точку....


Название: Re: Редактируемый QLabel
Отправлено: Racheengel от Ноябрь 19, 2008, 16:42
Как вариант можно сделать QLineEdit с переопределенным стайлшитом (так, чтобы компонент выглядел как label).
ИМХО более оправданное и правильное решение.