2017-05-05 13 views
1

私は韓国人ですので、英語が上手ではないことをご理解ください。QButttonアレイに接続するにはどうしたらいいですか?

Qt5でPOSシステムを作成するだけです。

私はいくつかのボタン(赤)を押して、テーブル(黄色)に表示したいと思います。このような

enter image description here

ので、私はアイテムのいくつかの名前を持っているとのQPushButton配列に入れていくつかのファイルを読み込みます。

と私はこのようなのQPushButtonアレイこと接続:

void qt_test::put_item(QWidget *Widget, QString location){ 
QGridLayout *layout = new QGridLayout(); 
QPushButton *button[25]; //set QPushButton array; 
QString name[25]; //store name of item; 

fileio file; 
file.file_io2(name, location); //read file and get name of item; 

int temp=0; 
for(int i=0;i<5;i++){ 
    for(int j=1;j<6;j++,temp++){ 
     //insert name in QPushButton 
     button[temp] = new QPushButton(name[temp]); 
     button[temp]->setMinimumSize(10,70); 
     layout->addWidget(button[temp],i,j); 
    } 
} 

Widget->setLayout(layout); 

//connect QPushArray. 
connect(*button,SIGNAL(clicked()),this,SLOT(input_item())); 

}

が、これは私が

void qt_test::input_item(){ 
    if(!(P_ROW==9)){ 
     ui.sel_item_table->item(P_ROW,0)->setText("test"); 
     ++P_ROW; 
    } 

問題であると考えスロットである、

  1. どのように私は考えていないQPushBottonのテキストをQTableに入れることができますか?

  2. どうすれば自分のスロットに接続するボタンを制御できますか? 私のコードでは、1つのボタンだけが動作します...すべてのボタンではありません。 だけオニオンスープ;(

答えて

0

あなたは、個々のプッシュボタンに接続する必要があります!うわー

for(int i=0;i<5;i++){ 
    for(int j=1;j<6;j++,temp++){ 
     //insert name in QPushButton 
     button[temp] = new QPushButton(name[temp]); 
     button[temp]->setMinimumSize(10,70); 
     layout->addWidget(button[temp],i,j); 

     connect(button[temp], &QPushButton::clicked, [=] { input_item(button[temp]); }); 
    } 
} 

... 

void qt_test::input_item(QPushButton* button) 
{ 
    ui.sel_item_table->item(P_ROW,0)->setText(button->text()); 
} 
+0

をパーフェクト!!!!!!!!!!!!!!!!!!! !!!!!! 私を助けてくれてありがとう! –

関連する問題