最近做了个医院的小项目,开始用的Qt,后来发懒用的Pb,做个小结:
1.Pb动态打开窗体,通过字符串指定窗口名称
下面的代码打开四个窗口,其中被打开的窗口名称存放在字符变量中;
你要打开不同的窗口只需要改变字符变量的值就可以了;
window w_stock_win[ ]
string ls_stock_type[4]
ls_stock_type[1] = “w_stock_wine “
ls_stock_type[2] = “w_stock_scotch “
ls_stock_type[3] = “w_stock_beer “
ls_stock_type[4] = “w_stock_soda “
FOR n = 1 to 4
//该语句执行后,w_stock_win[n]的窗口从ls_stock_type[n]变量中指定的窗体创建
Open(w_stock_win[n], ls_stock_type[n])
NEXT
2.Qt中打开另一个ui
void MainWindow::showAnotherUi()
{
QUiLoader loader;
QFile file(“:/forms/treat.ui”);
file.open(QFile::ReadOnly);
QWidget *another = loader.load(&file);
file.close();
another->show();
}
3.Qt通过ODBC连接数据库
QSqlDatabase ldb;
if(QSqlDatabase::contains(“dbName”))
ldb = QSqlDatabase::database(“dbName”);
else
ldb = QSqlDatabase::addDatabase(“QODBC”,”dbName”);
ldb.setDatabaseName(“DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=F://Qt//workspace//myProject//dbName.mdb”);
bool ok = ldb.open();
if(ok)
{
//相关实现
}
ldb.close();
4.自定义槽函数实现qtreewidget和qstackedwidget的关联
void MainWindow::setStackedWin(QTreeWidgetItem *item, int column)
{
if(!item)
return;
QString str = item->text(column);
QString strr = topItem->text(column);
// qDebug()<<strr;
int index= topItem->indexOfChild(item);
// qDebug()<<index;
if(item==topItem)
ui->stackedWidget->setCurrentIndex(0);
if(item!=topItem)
ui->stackedWidget->setCurrentIndex(index+1);
}