4429
|
Qt / Базы данных / Re: Добавление строки в QTableView
|
: Июль 22, 2011, 17:28
|
Пытаюсь создать для него наследника: QTableView ta; tableView t; ta = new QTableView(t);
и вылетает ошибка: ошибка: 'QTableView::QTableView(const QTableView&)' is private В чем причина и как исправить? Скажите, пожалуйста. больше класс QTableView тебе не нужен - используй свой класс tableView. и, как правильно заметили выше, надо указателем объявлять переменную, раз создаешь ее через new. C++ (Qt) tableView *t = new tableView(this);
|
|
|
4431
|
Qt / Базы данных / Re: Добавление строки в QTableView
|
: Июль 21, 2011, 19:00
|
1. C++ (Qt) QSqlTableModel *model; model->insertRows(model->rowCount() - 1, 1);
2. если по нажатию кнопки (QPushButton/QAction), то см. свойство shortcut; если именно просто по нажатию клавиши, то унаследуйся от QTableView и переопредели keyPressEvent(), в котором будешь отлавливать нужную клавишу
|
|
|
4434
|
Qt / Вопросы новичков / Re: Дублирование действия кнопок
|
: Июль 21, 2011, 00:28
|
void setShortcut(const QKeySequence &key) должен работать: C++ (Qt) QToolButton tb; tb.setShortcut(Qt::CTRL + Qt::Key_F1); // или tb.setShortcut("Ctrl+F1");
свой неработающий код в студию.
|
|
|
4437
|
Программирование / С/C++ / Re: Как передать в функцию указатель на (двумерный) массив?
|
: Июль 20, 2011, 14:55
|
Вы не хотите использовать stl, контейнеры - хорошо... Так научите, подскажите! вряд ли на этом форуме будут учить как пользоваться stl или контейнерами. для этого есть куча самых разных книг и статей в интернете. C++ (Qt) double * BL1 = new double[(kt1 + 2)*2];
пытаюсь заполнить например так: C++ (Qt) BL1[0][0] = 1.0;
компилятор ругается: invalid types 'double[int]' for array subscript Оно и понятно. Массив создался одномерный. Как сделать двумерный? C++ (Qt) int rows = kt1 + 2; double **BL1 = new double *[rows]; for (int i = 0; i < rows; ++i) BL1[i] = new double [2];
|
|
|
4439
|
Программирование / С/C++ / Re: Как передать в функцию указатель на (двумерный) массив?
|
: Июль 20, 2011, 12:25
|
третий параметр ожидается double, а ты туда подставляешь массив; чтоб передать указатель на двумерный массив, в сигнатуре функции поменяй на double B[][2] или double **B;
при передаче массива в качестве параметра писать перед ним & необязательно; при обращении к элементам массива, даже если он и передан в виде указателя, ставить перед ними * не нужно
|
|
|
|
|