Set row highlighted when application start in QTableWidget
-
Hello devs!
I am currently trying to develop an application where I have a QTableWidget.
This tableWidget has 2 columns (containing text).
The selection behaviour is set to "QAbstractItemView::SelectRows" - which selects the entire row instead of the single cell.
Now I'm trying to set the first row as highlighted when my application is launched. I have had no luck so far though.Can anyone help me out?
Thank you for your time.
-
You can use "void QTableWidget::setCurrentCell ( int row, int column )":http://doc.qt.nokia.com/latest/qtablewidget.html#setCurrentCell with selection mode set to QAbstractItemView::SingleSelection or QAbstractItemView::ExtendedSelection
-
Yes, I call my QTableWidget setup method from the constructer.
Here is some of my code:
@
Setup::Setup(QWidget *parent) :
Parent_ui(parent) {ui.setupUi(this);
populateList();
}void Setup::populateList() {
ui.tableWidget->setColumnCount(2);
ui.tableWidget->setColumnWidth(0,(ui.tableWidget->width() - 152));
ui.tableWidget->setColumnWidth(1,150);
ui.tableWidget->setShowGrid(false);
ui.tableWidget->verticalHeader()->hide();
ui.tableWidget->horizontalHeader()->hide();
ui.tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);... //items are added to the QTableWidget
}
@So I cant call setCurrentCell from my populateList method?
How do I handle this problem?
Thank you for your time!
Edit: Please use @ tags to format code sections; Andre
-
No, you can not. The problem is, that at that time, your form is not even showing yet.
What you might do, is something like this:@
Setup::Setup(QWidget *parent) :
Parent_ui(parent) {ui.setupUi(this);
populateList();
//trigger 2nd phase of initialization when the eventloop is running
QTimer::singleShot(0, this, SLOT(initializePhase2()));
}void Setup::initializePhase2()
{
//set which row to highlight.
}
@Don't forget to mark initializePhase2 as a (private) slot in your header, and include the Q_OBJECT macro in your class definition, of course. Sorry for the inconvenience...
-
bq. Sorry for the inconvenienceā¦
I am grateful for your help - that goes to all of you. :)
The cell row is now highlighted grey - what method could set the row as... hmm.. is it called focus? You know like when you click a cell and it turns blue.
Again - thank you for your time!