В qtableView куда-то пропал горизонтальный QScrollBar и как можно убрать стрелочки при установки даты?
В последней столбце текст не влазит в строку, но qtableView не ставит автоматически QScrollBar. Его просто нет.
db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("EventBalancer");
db.setUserName("");
db.setPassword("");
if(!db.open()){
qDebug() << db.lastError().text() ;
}else
{
qDebug() << "Success!\n";
}
model = new QSqlTableModel(this,db);
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->setTable("TableEventBalancer");
model->select();
ui->tableView->setModel(model);
int id = QFontDatabase::addApplicationFont("/usr/share/fonts/dejavu/DejaVuSansMono.ttf");
QFont font = QFont(QFontDatabase::applicationFontFamilies(id).first());
font.setPointSize(12);
ui->tableView->setFont(font);
ui->tableView->horizontalHeader()->setResizeMode(0,QHeaderView::ResizeToContents);
ui->tableView->horizontalHeader()->setResizeMode(1,QHeaderView::ResizeToContents);
ui->tableView->horizontalHeader()->setResizeMode(2,QHeaderView::Stretch);
model->setHeaderData(model->fieldIndex("number"), Qt::Horizontal, QString::fromLocal8Bit("ID"));
model->setHeaderData(model->fieldIndex("_date"), Qt::Horizontal, QString::fromLocal8Bit("Дата"));
model->setHeaderData(model->fieldIndex("text"), Qt::Horizontal, QString::fromLocal8Bit("Текст"));
В чем дело?
И как можно убрать стрелочки при установки даты? Маленькие up/down.
Ответы (1 шт):
Автор решения: Sergey Tatarincev
→ Ссылка
Скроллбара нет, потому как стоит растяжение столбца в размер виджета (не в размер содержимого, а именно в размер виджета). чтобы "подогнать" под содержимое, ПОСЛЕ получения данных можно сделать например так:
model->select();
ui->tableView->setModel(model);
ui->tableView->resizeColumnsToContents();
ui->tableView->resizeRowsToContents();
но это придется делать при каждом обновлении таблицы. плюс к этому это будет занимать время Касаемо контролов при редактировании даты, их можно скрыть стилем (в редакторе, или в коде ui->tableView->setStyleSheet())
QDateTimeEdit::up-button {
width: 0px;
height:0px;
}
QDateTimeEdit::down-button {
width: 0px;
height:0px;
}
