main.cpp
#include "myqt.h"
#include <QtWidgets/QApplication>
#include <QtWidgets>
//#include <QDebug>
//#include <iostream>
//#include <windows.h>
using namespace Qt;
using namespace std;
int main(int argc, char *argv[])
{
QApplication a(argc, argv); //进行信号与槽的处理,放到QWight前面
myqt w;
w.show();
return a.exec();
}
myqt.cpp
#include "myqt.h"
#include <QMovie>
myqt::myqt(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
QString str = QStringLiteral("测试的中文");
//ui.label->setText(str);
//手动创建QLabel 播放gif动画
QLabel* lab2 = new QLabel(this); //加入this相当于在窗体内部显示Label标签,否则将会创建新的窗体
lab2->setGeometry(60, 50, 250, 400);
lab2->setStyleSheet("background-color:rgb(161,200,247);");
lab2->setAlignment(Qt::AlignCenter);
QMovie* mov = new QMovie("R-C.gif");
mov->setScaledSize(QSize(250, 400));
lab2->setMovie(mov);
//lab2->show(); //在主窗体内部,无需设置,另开窗口需要设置显示
mov->start();
ui.label->setSelection(0,4); //设置label的选中文字
}
myqt.h
#pragma once
#include <QtWidgets/QWidget>
#include "ui_myqt.h"
#include <QDebug>
class myqt : public QWidget
{
Q_OBJECT
public:
myqt(QWidget *parent = Q_NULLPTR);
public slots:
void Act(QString url) //点击超链接触发的槽函数
{
qDebug() << "click" << url << endl;
qDebug() << ui.label->selectedText();
}
void Hover(QString url) //鼠标移动到超链接执行的槽函数
{
qDebug() << "Hover" << url << endl;
qDebug() << ui.label->selectedText(); //显示选中的文本
}
private:
Ui::myqtClass ui;
};
ui_myqt.h
#ifndef UI_MYQT_H
#define UI_MYQT_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_myqtClass
{
public:
QPushButton *closeWindow;
QPushButton *minwindow;
QLabel *label;
QLabel *labe2;
void setupUi(QWidget *myqtClass)
{
if (myqtClass->objectName().isEmpty())
myqtClass->setObjectName(QString::fromUtf8("myqtClass"));
myqtClass->resize(860, 614);
closeWindow = new QPushButton(myqtClass);
closeWindow->setObjectName(QString::fromUtf8("closeWindow"));
closeWindow->setGeometry(QRect(470, 390, 93, 28));
minwindow = new QPushButton(myqtClass);
minwindow->setObjectName(QString::fromUtf8("minwindow"));
minwindow->setGeometry(QRect(470, 440, 93, 28));
label = new QLabel(myqtClass);
label->setObjectName(QString::fromUtf8("label"));
label->setGeometry(QRect(550, 70, 261, 121));
label->setStyleSheet(QString::fromUtf8("background-color: rgb(85, 255, 255);\n"
"font: 16pt \"\351\273\221\344\275\223\";\n"
"color: rgb(255, 0, 127);"));
label->setAlignment(Qt::AlignCenter);
label->setTextInteractionFlags(Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextEditable|Qt::TextEditorInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse);
labe2 = new QLabel(myqtClass);
labe2->setObjectName(QString::fromUtf8("labe2"));
labe2->setGeometry(QRect(580, 180, 281, 441));
labe2->setStyleSheet(QString::fromUtf8("image: url(:/myqt/R-C.gif);\n"
""));
retranslateUi(myqtClass);
QObject::connect(minwindow, SIGNAL(clicked()), myqtClass, SLOT(showMinimized()));
QObject::connect(closeWindow, SIGNAL(clicked()), myqtClass, SLOT(close()));
QObject::connect(label, SIGNAL(linkActivated(QString)), myqtClass, SLOT(Act(QString)));
QObject::connect(label, SIGNAL(linkHovered(QString)), myqtClass, SLOT(Hover(QString)));
QMetaObject::connectSlotsByName(myqtClass);
} // setupUi
void retranslateUi(QWidget *myqtClass)
{
myqtClass->setWindowTitle(QCoreApplication::translate("myqtClass", "myqt", nullptr));
closeWindow->setText(QCoreApplication::translate("myqtClass", "\345\205\263\351\227\255\347\252\227\345\217\243", nullptr));
minwindow->setText(QCoreApplication::translate("myqtClass", "\346\234\200\345\260\217\345\214\226\347\252\227\345\217\243", nullptr));
label->setText(QCoreApplication::translate("myqtClass", "<html><head/><body><p>TextLabel<br/>nihao<a href=\"www.baidu.com\"><span style=\" text-decoration: underline; color:#0000ff;\">\351\223\276\346\216\245</span></a></p></body></html>", nullptr));
labe2->setText(QString());
} // retranslateUi
};
namespace Ui {
class myqtClass: public Ui_myqtClass {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MYQT_H