Доброго всем вечера.
Есть два вопросик по QTableWidget:
1. Существует три колонки. Реально ли зафиксировать боковые колонки (чтобы не менялась их ширина), а ширину средней колонки сделать плавающей (если окно растягиваем, то растягивается только средняя колонка). Реально ли это сделать?
2. Можно ли сразу поменять цвет строки или же необходимо менять цвет каждого Item'а, находящегося в строке?
Заранее спасибо.
1. Конечно реально.
// задаем ширину столбцов
tableWidget->horizontalHeader()->resizeSection(0, 100);
tableWidget->horizontalHeader()->resizeSection(2, 100);
// фиксируем их размер
tableWidget->horizontalHeader()->setResizeMode(0, QHeaderView::Fixed);
tableWidget->horizontalHeader()->setResizeMode(2, QHeaderView::Fixed);
// центральный столбей делаем "растягивающимся"
tableWidget->horizontalHeader()->setResizeMode(1, QHeaderView::Stretch);
canavar, по превому вопросу следовало воспользоваться поиском, и темой FAQ
Абсолютно согласен, что нужно было маны почитать, просто я уже не соображал, а сделать было нужно.
Спасибо за консультацию.
Скажите а кто-нить сталкивался с такой проблемой... имеется QTreeWidget
Меняю у одной строки через sizeHint размер на высоту например 200. А сам widget имеет высоту 100. При этом прокрутка не появляется, при том что выбрана ScrollBarAlwaysOn или ScrollBarAsNeeded. Кто-нибудь знает как решить это??? Как сделать так чтобы прокрутка корректно отрабатывала в таких случаях??
p/s показалось что вопрос подходит к теме..
void QTreeWidgetItem::setSizeHint ( int column, const QSize & size )
QTreeWidgetItem *item = treeWidget->topLevelItem(0);
item->setSizeHint(0, QSize(50, 550));
Делал похожим образом, дабы далее не растекаться мыслью по древу приведу то что я пробую сделать.. Много всего урезал для того чтобы было кратко и понятно..
tree_widget_experiment.cpp:
#include "tree_widget_experiment.h"
#include <QTreeWidgetItem>
#include <QtGui>
tree_widget_experiment::tree_widget_experiment(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
QWidget *centralWidget;
QHBoxLayout *horizontalLayout;
QTreeWidget *treeWidget;
QFrame *frame;
QGridLayout *gridLayout;
QLabel *label_19;
QLabel *label_21;
QLabel *label_20;
QSpacerItem *horizontalSpacer;
QLabel *label_22;
QPlainTextEdit *plainTextEdit_4;
centralWidget = new QWidget(this);
horizontalLayout = new QHBoxLayout(centralWidget);
treeWidget = new QTreeWidget(centralWidget);
horizontalLayout->addWidget(treeWidget);
this->resize(800, 157);
this->setCentralWidget(centralWidget);
frame = new QFrame();
frame->setMaximumSize(QSize(16777215, 150));
frame->setFrameShape(QFrame::NoFrame);
frame->setFrameShadow(QFrame::Raised);
frame->setLineWidth(0);
label_19 = new QLabel(frame);
label_21 = new QLabel(frame);
label_20 = new QLabel(frame);
horizontalSpacer = new QSpacerItem(198, 17, QSizePolicy::Expanding, QSizePolicy::Minimum);
label_22 = new QLabel(frame);
plainTextEdit_4 = new QPlainTextEdit(frame);
label_19->setText("awefawef");
label_21->setText("awefawef");
label_20->setText("awefawef");
label_22->setText("awefawef");
gridLayout = new QGridLayout(frame);
gridLayout->setSpacing(6);
gridLayout->setMargin(11);
gridLayout->addWidget(label_19, 0, 0, 1, 2);
gridLayout->addWidget(label_21, 0, 2, 1, 1);
gridLayout->addWidget(label_20, 1, 0, 1, 1);
gridLayout->addItem(horizontalSpacer, 1, 1, 1, 1);
gridLayout->addWidget(label_22, 1, 2, 1, 1);
gridLayout->addWidget(plainTextEdit_4, 2, 0, 1, 3);
QTreeWidgetItem *parentWI = new QTreeWidgetItem(treeWidget);
parentWI->setText(0, "S/n: HWKHBKW923423");
QTreeWidgetItem *childWI = new QTreeWidgetItem(parentWI);
childWI->setSizeHint(0,QSize(50,400));
treeWidget->setItemWidget(childWI,0,frame);
}
tree_widget_experiment::~tree_widget_experiment()
{
}
#ifndef TREE_WIDGET_EXPERIMENT_H
#define TREE_WIDGET_EXPERIMENT_H
#include <QtGui/QMainWindow>
class tree_widget_experiment : public QMainWindow
{
Q_OBJECT
public:
tree_widget_experiment(QWidget *parent = 0, Qt::WFlags flags = 0);
~tree_widget_experiment();
};
#endif // TREE_WIDGET_EXPERIMENT_H
#include <QtGui/QApplication>
#include "tree_widget_experiment.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
tree_widget_experiment w;
w.show();
return a.exec();
}
Эх, заставили вы меня помучиться. А решение как всегда оказалось проще некуда
Нужно всего лишь добавить свойство
treeWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
Огромное спасибо!!!!
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)