Название: Выравнивание QTableWidget по центру в QDialog Отправлено: YvenTitan от Август 12, 2016, 16:32 Здравствуйте
Есть таблица QTableWidget в окне QDialog. Подскажите пожалуйста, как разместить ее, выровняв по горизонтали Название: Re: Выравнивание QTableWidget по центру в QDialog Отправлено: Racheengel от Август 12, 2016, 16:46 в смысле по центру что ли?
это Layouts. Название: Re: Выравнивание QTableWidget по центру в QDialog Отправлено: YvenTitan от Август 12, 2016, 16:50 Да, по центру
Название: Re: Выравнивание QTableWidget по центру в QDialog Отправлено: Racheengel от Август 12, 2016, 17:05 QDialog* myDialog;
QTableWidget* myTable; ... QHBoxLayout* l = new QHBoxLayout(myDialog); l->addWidget(myTable); как то так Название: Re: Выравнивание QTableWidget по центру в QDialog Отправлено: gil9red от Август 12, 2016, 19:12 QDialog* myDialog; QTableWidget* myTable; ... QHorizontalLayout* l = new QHorizontalLayout(myDialog); l->addWidget(myTable); как то так Только QHBoxLayout Название: Re: Выравнивание QTableWidget по центру в QDialog Отправлено: YvenTitan от Август 15, 2016, 11:08 Надо, чтобы таблица была сверху (в первой строке QHBoxLayout), и выровнена по центру. Я пробую, и у меня получается, что виджет больше таблицы. Во вложении скриншот получившегося окна. Как это исправить?
QDialog * dialog = new QDialog; // “аблица QTableWidget *tableWidget = new QTableWidget(1,9,this); // таблица с 1 строкой и 9 колонками tableWidget->setHorizontalHeaderLabels(QString // установка заголовков таблицы ("Логические;Байтовые;Целые;Длинные целые;" "Вещественные;Строковые;Массив;Таймер;Всего").split(";")); tableWidget->verticalHeader()->setVisible(false); // скрытие вертикальных заголовков таблицы // установка значений в €чейки таблицы tableWidget->setItem(0,0,new QTableWidgetItem(QString::number(12))); // количество логических переменных tableWidget->setItem(0,1,new QTableWidgetItem(QString::number(45))); // количество байтовых переменных tableWidget->setItem(0,2,new QTableWidgetItem(QString::number(5))); // количество целых переменных tableWidget->setItem(0,3,new QTableWidgetItem(QString::number(66))); // количество длинных целых переменных tableWidget->setItem(0,4,new QTableWidgetItem(QString::number(8))); // количество вещественных переменных tableWidget->setItem(0,5,new QTableWidgetItem(QString::number(4))); // количество строковых переменных tableWidget->setItem(0,6,new QTableWidgetItem(QString::number(23))); // количество переменных типа "массив" tableWidget->setItem(0,7,new QTableWidgetItem(QString::number(8))); // количество таймерных переменных tableWidget->setItem(0,8,new QTableWidgetItem(QString::number(171))); // общее количество переменных tableWidget->resizeColumnsToContents(); // выравнивание колонок по содержимому //выравнивание содержимого €чеек по центру tableWidget->item(0,0)->setTextAlignment(Qt::AlignCenter); tableWidget->item(0,1)->setTextAlignment(Qt::AlignCenter); tableWidget->item(0,2)->setTextAlignment(Qt::AlignCenter); tableWidget->item(0,3)->setTextAlignment(Qt::AlignCenter); tableWidget->item(0,4)->setTextAlignment(Qt::AlignCenter); tableWidget->item(0,5)->setTextAlignment(Qt::AlignCenter); tableWidget->item(0,6)->setTextAlignment(Qt::AlignCenter); tableWidget->item(0,7)->setTextAlignment(Qt::AlignCenter); tableWidget->item(0,8)->setTextAlignment(Qt::AlignCenter); QHBoxLayout *hBoxLayout = new QHBoxLayout(dialog); hBoxLayout->addWidget(tableWidget,Qt::AlignVCenter,Qt::AlignTop); dialog->exec(); Название: Re: Выравнивание QTableWidget по центру в QDialog Отправлено: Igors от Август 15, 2016, 11:38 Что-то не так с SizePolicy. Часто удобно добиться желаемого в QDesigner и посмотреть созданный им код
Название: Re: Выравнивание QTableWidget по центру в QDialog Отправлено: kambala от Август 15, 2016, 16:09 Код вот тут собака зарыта как минимум Название: Re: Выравнивание QTableWidget по центру в QDialog Отправлено: Igors от Август 16, 2016, 06:27 Я пробую, и у меня получается, что виджет больше таблицы. Во вложении скриншот получившегося окна. Как это исправить? Судя по картинке с виджетом все норм. Возможно Вы хотите чтобы колонки таблицы покрывали весь виджет, т.е. не было бы свободного места справа. Тогда хотя бы одной колонке надо дать setSectionResizeMode(index, QHeaderView::Stretch) |