В 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;
 }
→ Ссылка