实现效果
代码如下:
using namespace std;
class QMyLabel:public QLabel
{
Q_OBJECT
public slots:
void rsetText(QListWidgetItem *item);
};
void QMyLabel::rsetText(QListWidgetItem *item){
this->setText(item->text());
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//MainWindow w;
//w.show();
//创建一个窗口,作为输入框的父窗口
QWidget widget;
//设置窗口的标题
widget.setWindowTitle("QWidget窗口");
widget.resize(500,500);
QListWidget listWidget(&widget);
listWidget.resize(500,400);
listWidget.setFont(QFont("宋体",14));
listWidget.addItem("hello china");
listWidget.addItem("hello beijing");
listWidget.addItem(new QListWidgetItem("hello hangzhou"));
QMyLabel ml;
ml.setText("选中内容");
ml.setParent(&widget);
ml.resize(500,100);
ml.move(0,400);
ml.setAlignment(Qt::AlignCenter);
QObject::connect(&listWidget,&QListWidget::itemClicked,&ml,&QMyLabel::rsetText);
widget.show();
return a.exec();
}
除了上面这种办法。还可以把类的声明放到头文件中
头文件如下
class QMyLabel;
class QMyLabel:public QLabel
{
Q_OBJECT
public slots:
void rsetText(QListWidgetItem *item);
};
// M_H
main.cpp代码如下
using namespace std;
void QMyLabel::rsetText(QListWidgetItem *item){
this->setText(item->text());
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//MainWindow w;
//w.show();
//创建一个窗口,作为输入框的父窗口
QWidget widget;
//设置窗口的标题
widget.setWindowTitle("QWidget窗口");
widget.resize(500,500);
QListWidget listWidget(&widget);
listWidget.resize(500,400);
listWidget.setFont(QFont("宋体",14));
listWidget.addItem("hello china");
listWidget.addItem("hello beijing");
listWidget.addItem(new QListWidgetItem("hello hangzhou"));
QMyLabel ml;
ml.setText("选中内容");
ml.setParent(&widget);
ml.resize(500,100);
ml.move(0,400);
ml.setAlignment(Qt::AlignCenter);
QObject::connect(&listWidget,&QListWidget::itemClicked,&ml,&QMyLabel::rsetText);
widget.show();
return a.exec();
}