Tôi đang thực hiện một chương trình nhắn tin trò chuyện nhỏ, cần một danh sách các kênh trò chuyện mà người dùng đã tham gia. Để đại diện cho danh sách này bằng đồ thị, tôi đã tạo danh sách QPushButtons
, tất cả đều đại diện cho một kênh khác. Các nút này được thực hiện với các phương pháp sau đây, và đó là nơi vấn đề của tôi đá trong: (. ActivePanelContents là một QWidget chứa danh sách)Làm thế nào để chuyển các biến vào các phương thức khe trong 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)));
}
Vấn đề là mỗi nút nên gọi phương thức switchTab(string& tabname)
khi được nhấp, bao gồm tên của kênh cụ thể dưới dạng biến. Việc triển khai này không hoạt động và tôi chưa thể tìm hiểu cách thực hiện đúng cách này.
Hãy nhận biết của những lời cảnh báo trước khi sử dụng QObject :: người gửi trong mã của bạn –
Không chắc chắn lý do tại sao bài đăng của bạn được sử dụng hết, nhưng dù sao cũng được. Bạn đã giúp rất nhiều – parsecer