如图所示,我做的是一个qt界面车辆信息管理系统,程序已经大致编写好,但是点击 浏览所有 键位 却没有反应,运行过程中也没有报错,想知道是哪里出了问题。
问题原因是槽函数没有收到按钮点击事件,至于什么原因导致的没有发现,你的问题解决方法如下:
在Mainwindow的构造函数中,手动绑定按钮的点击事件。运行结果如下:
Mainwindow构造函数:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->setupUi(this);
//显示登录界面
l.show();
//关联Login类对象l中的信号函数loginSuccess和本类对象中的槽函数dealLogin
connect(&l,&Login::loginSuccess, this, &MainWindow::dealLogin);
//设置主界面的窗口标题为"车辆信息管理系统"
setWindowTitle("车辆信息管理系统");
//为变量model赋值
model=new QStandardItemModel;
//设置主界面中的tableView控件对象绑定的数据为变量model
ui->tableView->setModel(model);
//设置多行文本框的提示性字符串,用于提示用户添加车次时的正确格式要求
ui->textEdit->setPlaceholderText("宝马7系,宝马,大型车,5座,3.0T,手自一体,黑色,91.90万");
//调用初始化tableView表格数据的函数
initTable();
//添加这一行代码 !!!!!
connect(ui->pushButton_2,&QPushButton::clicked,this,&MainWindow::on_pushButton_2_clicked);
}
另外,你的点击函数for循环里setItem的第一个参数也需要修改一下,改成 i-1,如下:
void MainWindow::on_pushButton_2_clicked()
{
//调用initTable函数初始化tableView表格
initTable();
//循环取出fiileData每个元素的值
for (int i=1;i<fileData.count();++i) {
//逗号作为分隔符,取出各字段的值
QStringList strLine = fileData.at(i).split(",");
//依次往表格中填充信息
model->setItem(i-1, 0, new QStandardItem(strLine.at(0)));
model->setItem(i-1, 1, new QStandardItem(strLine.at(1)));
model->setItem(i-1, 2, new QStandardItem(strLine.at(2)));
model->setItem(i-1, 3, new QStandardItem(strLine.at(3)));
model->setItem(i-1, 4, new QStandardItem(strLine.at(4)));
model->setItem(i-1, 5, new QStandardItem(strLine.at(5)));
model->setItem(i-1, 6, new QStandardItem(strLine.at(6)));
model->setItem(i-1, 7, new QStandardItem(strLine.at(7)));
}
}
你得系统日志复制出来发给我看一下
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!