Название: О QTableWidget Отправлено: qtист от Март 04, 2009, 18:10 Перехожу потихоньку с MFC на QT - тяжко :'( ,
может и стану кютеистом. Вопрос такой: cоздал форму с QTableWidget. Надо бы сделать ввод ,например,только цифр и запятой. Получается или любые символы,или только цифры. Название: Re: О QTableWidget Отправлено: pastor от Март 04, 2009, 18:25 Нужно создать свой делегат на основе QItemDelegate и установить его для таблицы при помощи setItemDelegate(...).
См .пример QTDIR/examples/itemviews/spinboxdelegate/ Тебе нужно переопределить один метод - createEditor, создать редактор ячеек (QLineEdit), установить нужную маску ввода: Код
Название: Re: О QTableWidget Отправлено: KADABRA от Март 04, 2009, 21:21 ... установить нужную маску ввода: Правильнее validator:Код
Код
Название: Re: О QTableWidget Отправлено: qtист от Март 05, 2009, 11:07 Получилось,всем +1. ;D
а вот ещё один маленький вопрос по QTabWidget: как убрать выделение элемента из таблицы,когда таблица теряет фокус? Название: Re: О QTableWidget Отправлено: spirit от Март 05, 2009, 11:17 см. void QAbstractItemView::clearSelection () & QFocusEvent.
Название: Re: О QTableWidget Отправлено: Maquefel от Апрель 16, 2009, 11:19 Не получаеться - пустые ячейки вставляет :'( и редактировать не даёт
Код: MainWindow::MainWindow(QWidget *parent) tableitemdelegate.h Цитировать class tabledelegate : public QItemDelegate { public: tabledelegate(QObject *parent = 0); QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const; }; tableitemdelegate.cpp Цитировать tabledelegate::tabledelegate(QObject *parent) : QItemDelegate(parent) { } QWidget *tabledelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &/* option */, const QModelIndex &/* index */) const { QLineEdit *editor = new QLineEdit(parent); editor->setValidator(new QDoubleValidator(editor)); editor->setEnabled(true); return editor; } Название: Re: О QTableWidget Отправлено: spirit от Апрель 16, 2009, 11:22 попробуй вместо
Код вот так сделать Код
Название: Re: О QTableWidget Отправлено: Maquefel от Апрель 16, 2009, 11:24 Спасибо большое - работает, а в чем дело - если вкратце?
Название: Re: О QTableWidget Отправлено: spirit от Апрель 16, 2009, 11:26 в том, что ты делегат создаешь в стеке при выходе
из области видимости он удаляется, поэтому его нужно создавать в куче. |