MySQL database table row value display in QTableView like below mentioned image
-
wrote on 13 Feb 2013, 11:22 last edited by
!http://i.stack.imgur.com/2etav.png(Image)!
I need to show the primary key column values like specified in the above image. Can it be achieved? As QTableView will only make rows and columns available in the DB table, I need only particular values (of primary key column) iterated with for(each) loop inside while(query.next())...kindly guide me, thank you in advance.
-
wrote on 13 Feb 2013, 11:31 last edited by
Similar issue was discussed yesterday. Look at "link..":http://qt-project.org/forums/viewthread/24737/#114214
-
wrote on 13 Feb 2013, 11:42 last edited by
Thanks qxoz, in that conversation, Andre said "just use a table configured to use single row selection. You can always add the visual effect of a radio button later", does he meant to use QTableView to display one row of the values (primary key column) and add radio button besides them?? so the radio buttons will look like in another column? is it possible?
-
wrote on 13 Feb 2013, 12:22 last edited by
No he meant radiobuttons are last thing to do. Radiobutton is only a visual effect, selecting single row of TableView can be obtained by setting single sellection flag for QTableView. But if you want exactly radiobuttons then solution from Andre
[quote author="Andre" date="1360674416"]If you really want, you can however visually represent the selection with a radio button using a proxy model. The proxy model could take the QItemSelectionModel. Depending on if the row is selected, it could give a different result for the Qt::DecorationRole of the first column. Just use two images, one of a checked and one of an unchecked radio button. For bonus points, use the current style to render them :-)[/quote]
can be a good choice. In this case radiobutton will be displayed as icon and you can place it in one column with data or in different columns as you wish. -
wrote on 14 Feb 2013, 08:40 last edited by
Starts to sound like a school assignment to me...
-
wrote on 14 Feb 2013, 09:17 last edited by
bawahaha... andre, well i am a newly joined kid in School of Qt :), I need real help to get this assignment done :( ...
-
wrote on 14 Feb 2013, 09:19 last edited by
I suggest you go to your teacher for help then.
-
wrote on 14 Feb 2013, 09:21 last edited by
He himself told me to post it here :-D
-
wrote on 14 Feb 2013, 09:22 last edited by
He's paid to help you, we are not.
-
wrote on 14 Feb 2013, 09:25 last edited by
Why so serious dear Andre.... thanks anyway
-
wrote on 14 Feb 2013, 09:26 last edited by
Because you're not showing your own effort. The point of your excersise is for you to learn Qt. Just giving you ready-made solutions won't teach you anything at all.
-
wrote on 14 Feb 2013, 09:40 last edited by
That's great that the interest to Qt grows and grows. And all will be happy to help (at least i am) when possible. Just newcomers need to be more attentive and keep the forum rules. In the first place to search for similar topics on the forum and then create new topics. And try harder to solve issues their own.
-
wrote on 14 Feb 2013, 10:02 last edited by
OK From a little research I got this url: "It shows the ListModel, I guess thats what I need right?":http://files.itslearning.com/data/764/2405/qt4/ch10lev1sec3.html. Can anyone provide examples for this ListModel?
-
wrote on 14 Feb 2013, 10:17 last edited by
Why don't you take this step by step? Your first step would be to get the data from the database into something that you can show in a QListView. Qt happens to have a few suitable models for that already... They both have 'Sql' in their name.
I stand by my advice to ignore the radio button for the time being.
-
wrote on 15 Feb 2013, 10:16 last edited by
Hi Andre, I have completed the First step as you said, here is my code:
@#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QStandardItemModel>
#include <QListView>
#include <QSqlDatabase>
#include <QSqlQueryModel>
#include <QListView>MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QListView *listView = new QListView(this);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("users_in_feb");
db.setUserName("web_me");
db.setPassword("");
if(!db.open())
{
qDebug()<< "Failed";
qDebug()<< db.lastError();
}
else
{
model = new QSqlQueryModel(this);
model->setQuery("Select Name from new_joiners");
listView->setModel(model);
listView->setFixedSize(300,300); //width and height of QListView
}
}MainWindow::~MainWindow()
{
db.close();
delete ui;
}void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
@And the output : !http://i46.tinypic.com/2ykywjm.jpg!
Now it seems dont need radio buttons, but I need to send selected Name to another window. Guide me thanks.
-
wrote on 15 Feb 2013, 10:23 last edited by
Well, time to dive into using signals and slots then... QListView exposes a couple of interesting signals you might use.
-
wrote on 16 Feb 2013, 07:57 last edited by
Andre, I am not able to get what I need in that Signals, in my mind, my need is like: "When Next > button is clicked, it must check if a value is selected in QListView or left empty, if empty, show an alert MessageBox, else the selected value must be submitted to the next Window and shown in the QLineEdit field." Help me, thanks.
-
wrote on 16 Feb 2013, 11:40 last edited by
No, that is not what you need. It is bad usability. Instead of letting the user click the Next button, the next button should be disabled as long as there isn't anything selected yet. If you want to react on a click on the button, then obviously you need to take a look at the signals provided by that button, not by the list view.
Note that it seems that you are trying to make a wizard. Why not use QWizard for that?
-
wrote on 19 Feb 2013, 04:37 last edited by
Hi Andre, ur right, but in QListView, automatically the first element is selected when app starts, what can I do?
4/19