QT 控件小常识

<1>获取QTextEdit控件值
QTextEdit *textEdit_UserName;  //控件声明

QString strUserName = "";
strUserName = ui.textEdit_UserName->toPlainText();  //获取控件值

<2>今天试了用QT的模型显示数据,三种高层类QSqlQueryModel、QSqlTableModel、QSqlRelationalTableModel都试过了,首先排除的是QSqlTableModel,因为只允许单表读写,然后QSqlQueryModel类只允许读数据,本来想着将就用了,结果在执行SQL语句时,不能识别带where的语句,不得已弃之,最后尝试了一下QSqlRelationTableModel来表示有外键关系的数据。但是由于用到三表联查,这个类不够灵活,所以最后不得已还是用了QStandardItemModel这个模型类。

<3>在使用QSqlTableModel的时候,由于sql语句的where子句用了多个条件判断,如where id<500 and u_id=uid,试了下这种情况下model.setFilter为
model->setFilter(QObject::tr("u_id = '%0' and id<'%1'").arg(uid).arg(500));

<4>QMessageBox的第一个参数NULL,意思是父窗口为桌面窗口,等messagebox执行完之后,就返回桌面,此时,会关闭本来运行的窗口,所以在一个窗口上使用MessageBox的时候,将这个窗口设为MessageBox的父窗口,即NUll改为this。

<5>QListWidget的currentItemRow()在takeItem之后是会自动减少的,所以要定义对应的item的值到某个index时,不要用map<currentItemRow(),int>。row一旦删除时自动减少,就会导致对应错乱。

你可能感兴趣的:(qt)