Russian Qt Forum

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



Название: QWizard и QTableView
Отправлено: Kalombo от Ноября 18, 2008, 17:42
Пользователь заполняет данные в QTableView на первой странице визарда, хочу, чтобы данные, которые он ввел, высвечивались на последней странице. Возможно ли такое реализовать с помощью функций типа registerField? Или может существует другой короткий путь, кроме как наследование от QWizard и создание своей переменной для временного хранения содержимого QTableView? Пробовал что-то, вроде:
Код:
// Для первой страницы
registerField("elements",tableView);

Для последней страницы
void FinishPage::initializePage()
{
QString str = field("elements").toString();
finishLabel->setText(str);
}
получал пустую строку


Название: Re: QWizard и QTableView
Отправлено: Rcus от Ноября 18, 2008, 18:38
Цитировать
void QWizardPage::registerField ( const QString & name, QWidget * widget, const char * property = 0, const char * changedSignal = 0 )   [protected]
Цитировать
QWizard knows the most common Qt widgets. For these (or their subclasses), you don't need to specify a property or a changedSignal. The table below lists these widgets:
Цитировать
Widget
QAbstractButton
QAbstractSlider
QComboBox
QDateTimeEdit
QLineEdit
QListWidget
QSpinBox


Название: Re: QWizard и QTableView
Отправлено: Kalombo от Ноября 18, 2008, 19:26
А можно всё-таки поподробней? Пожалуйста...


Название: Re: QWizard и QTableView
Отправлено: denka от Ноября 18, 2008, 20:50
Собственно данные заполняються не в QTableView(так как сей клас преднозначен только для отображения), а в модель. Поэтому не понимаю фразы:
Цитировать
создание своей переменной для временного хранения содержимого QTableView
P.S. Кстате есть такой класс как QDataWidgetMapper который позволяет отображать часть модели в виджете.