- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一名学生程序员,使用 Qt 为工作开发 GUI,但在使用 QTableWidget 时遇到了问题。我有一个由这个小部件制作的电子表格,它采用各种值作为用户输入。我在这个电子表格之外有一个 QLineedit 字段,它需要显示第 9 列中任何值的总和。在这种情况下,我认为最好使用 cellchanged signal将第 9 列加在一起并显示,将 linedit 字段设置为所有这些单元格的总和。我的问题是当我去执行我的应用程序时,我收到以下应用程序输出并且我的 GUI 中的这部分不起作用:
> Object::connect: No such slot InjectionDialog::addWeightSum(int,int)
> Object::connect: (sender name: 'tableWidgetInjectionLocations')
> Object::connect: (receiver name: 'InjectionDialog')
据我所知,我已经多次确定这个插槽确实存在并且被正确调用了。但是我是一名学生,也许我不对,现在我在这里。
我的 InjectionDialog.h 包含以下插槽;
private slots:
void accepted_Clicked();
void cancel_Clicked();
void useFluidiFileRdoBtn_Clicked();
void useFluidSpecifiedValuesRdoBtn_Clicked();
void useParticleiFileRdoBtn_Clicked();
void useParticleSpecifiedValuesRdoBtn_Clicked();
void particleInjectionRdoBtn_Clicked();
void liquidDropletsRdoBtn_Clicked();
void addWeightSum(int &row, int &col);
我的 injectiondialog.cpp 包含以下内容。
InjectionDialog::InjectionDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::InjectionDialog)
{
ui->setupUi(this);
connect(ui->pushButtonAccept, SIGNAL(clicked()), this, SLOT(accepted_Clicked()));
connect(ui->pushButtonCancel, SIGNAL(clicked()), this, SLOT(cancel_Clicked()));
connect(ui->radioButtonUseiFileFluidInjection, SIGNAL(clicked()), this, SLOT(useFluidiFileRdoBtn_Clicked()));
connect(ui->radioButtonUseSpecifiedValuesFluidInjection, SIGNAL(clicked()), this, SLOT(useFluidSpecifiedValuesRdoBtn_Clicked()));
connect(ui->radioButtonUseiFileParticleInjection, SIGNAL(clicked()), this, SLOT(useParticleiFileRdoBtn_Clicked()));
connect(ui->radioButtonUseSpecifiedValuesParitcleInjection, SIGNAL(clicked()), this, SLOT(useParticleSpecifiedValuesRdoBtn_Clicked()));
connect(ui->tableWidgetInjectionLocations, SIGNAL(cellChanged(int,int)), this, SLOT(addWeightSum(int &row, int &col)));
我的注入(inject)对话框还包括我添加此列的功能;如下:
void InjectionDialog::addWeightSum(int &row, int &col)
{
double weightSum;
double totalWeightSum;
QString tempstr;
bool check;
if(col == 9)
{
for (int i = 0; i < ui->tableWidgetInjectionLocations->rowCount(); i++)
{
if (ui->tableWidgetInjectionLocations->item(i,9)->text() != "")
{
tempstr = ui->tableWidgetInjectionLocations->item(i,9)->text();
weightSum = tempstr.toDouble(&check);
if(check == false)
{
ui->lineEditWeightSum->setText("Error");
break;
}
else
{
totalWeightSum += weightSum;
}
}
}
ui->lineEditWeightSum->clear();
tempstr.append(QString("%1").arg(totalWeightSum));
ui->lineEditWeightSum->setText(tempstr);
}
}
这个问题可能是由一些我没有发现的简单问题引起的。感谢您提供的任何帮助。请只留下建设性的反馈,因为我只对改进和实现我的目标感兴趣。在这方面,我感谢所有提供帮助的尝试,并感谢您阅读本文。
最佳答案
你的信号插槽签名不同。在你的 void addWeightSum(int &row, int &col); 声明中
你已经把引用。删除它们。 void addWeightSum(int row, int col);
关于c++ - QTableWidget;使用 celllChanged 信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9068747/
我是一名学生程序员,使用 Qt 为工作开发 GUI,但在使用 QTableWidget 时遇到了问题。我有一个由这个小部件制作的电子表格,它采用各种值作为用户输入。我在这个电子表格之外有一个 QLin
我是一名优秀的程序员,十分优秀!