我已经使用继承和Qt Creator的一些按钮定义了一些QTableWidget
。
现在我正在尝试将我的按钮中的信号连接到QTableWidget
的插槽。
我在main()
中定义了我自己定义的Food对象(重新定义)QTableWidget
:
Table Food(&w,3,700,50,610,getdata_foodtabel());
在下一行中,我尝试将其与我的QPushButton
对象(orderButton)连接:
QObject::connect(Ui::MainWindow::orderButton, SIGNAL(w.on_orderButton_clicked()),&Food, SLOT(Food.get_number()));
在这一行中,我收到了这个错误:
error: invalid use of non-static data member 'Ui_MainWindow::orderButton'
QPushButton *orderButton;
^
并且get number是Table class
中自定义的公共槽任何人都可以告诉我为什么会出现这个错误? 我应该怎么做才能解决它?
我的表的构造函数int Table.cpp:
Table::Table(QWidget *Parent,int row,int X,int Y,int height,std::vector <std::vector <std::string > > food)
:QTableWidget(food.size(),3,Parent)
{
this->setGeometry(QRect(X,Y,321,height));
this->setStyleSheet(QStringLiteral("background-color: rgb(206, 255, 255);"));
this->row=food.size();
for(int i=0;i<this->row;i++)
this->food.push_back(food[i]);
for (int i=0;i<this->row;i++)
{
// this->food[i][0]=names[i];
// this->food[i][1]=costs[i];
this->setCellWidget(i,0,new label(QString::fromStdString(food[i][0])));
this->setCellWidget(i,1,new label (QString::fromStdString(food[i][1])));
this->setCellWidget(i,2,new QSpinBox);
}
}
和我的主要功能:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
Table Drinks(&w,3,40,50,280,getdata_drinktabel());
Drinks.setHorizontalHeaderLabels(QString("نوشیدنی;قیمت;تعداد").split(";"));
Table Desert(&w,3,40,380,280,getdata_desertabel());
Desert.setHorizontalHeaderLabels(QString("دسر;قیمت;تعداد").split(";"));
Table Appetizer(&w,3,370,50,610,getdata_beforetabel());
Appetizer.setHorizontalHeaderLabels(QString("پیش غذا;قیمت;تعداد").split(";"));
Table* Food=new Table(&w,3,700,50,610,getdata_foodtabel());
Food->setHorizontalHeaderLabels(QString(" غذا;قیمت;تعداد").split(";"));
Food->setStyleSheet(QStringLiteral("background-image: url(:/soltani-edited1.jpg);"));
QObject::connect(Ui::MainWindow::orderButton, SIGNAL(clicked()),Food, SLOT(Food.get_number()));
w.show();
return a.exec();
}
答案 0 :(得分:0)
我用另一种方式修复了它......
我刚从QPushButton
继承了一个班级,并将其信号连接到Food
的广告位。