मैं थोड़ा चैट मैसेंजर प्रोग्राम बना रहा हूं, जिसके लिए उपयोगकर्ता शामिल हो गए चैट चैनलों की एक सूची की आवश्यकता है। ग्राफिकल रूप से इस सूची का प्रतिनिधित्व करने के लिए, मैंने QPushButtons
की एक सूची बनाई है, जो सभी एक अलग चैनल का प्रतिनिधित्व करते हैं। ये बटन निम्नलिखित विधि के साथ बना रहे हैं, और कहा कि जहां मेरी समस्या किक में है: (। ActivePanelContents एक QWidget उस सूची को धारण करता है)QT में स्लॉट विधियों के चर को कैसे पास किया जाए?
void Messenger::addToActivePanels(std::string& channel)
{
activePanelsContents = this->findChild<QWidget *>(QString("activePanelsContents"));
pushButton = new QPushButton(activePanelsContents);
pushButton->setObjectName("pushButton");
pushButton->setGeometry(QRect(0, 0, 60, 60));
pushButton->setText("");
pushButton->setToolTip(QString(channel.c_str()));
pushButton->setCheckable(true);
pushButton->setChecked(false);
connect(pushButton, SIGNAL(clicked()), this, SLOT(switchTab(channel)));
}
बात यह है कि प्रत्येक बटन switchTab(string& tabname)
विधि बुलाना चाहिए जब क्लिक किया गया, विशिष्ट चैनल के नाम चर के रूप में। यह कार्यान्वयन हालांकि काम नहीं करता है, और मैं यह पता लगाने में सक्षम नहीं हूं कि इसे ठीक से कैसे किया जाए।
चेतावनी से सावधान रहें QObject :: इस प्रयोग करने से पहले आपके कोड में –
सुनिश्चित नहीं है कि आपकी पोस्ट का उपयोग क्यों किया गया था, लेकिन वैसे भी धन्यवाद। आपने बहुत मदद की – parsecer