使用Qt生成元件dll 檔案,不帶界面。
使用程序中自定義了一個類,類中含有connet。具體代碼如下:
類的定義:
class testTimer : public QObject
{
Q_OBJECT
public:
explicit testTimer(QObject* parent = nullptr);
QTimer *testtimer = new QTimer();
int value1 = 0;
QMetaObject::Connection flag;
private slots:
void calTest();
};
類的宣告:
testTimer::testTimer(QObject *parent) : QObject(parent)
{
flag = connect(testtimer,&QTimer::timeout,[=]()
{
value1= value1+1;
}
);
testtimer->start(1000);
}
void testTimer::calTest()
{
value1 = value1+1;
}
類的使用 兩個使用方法
方法一:直接在main中
testTimer *test11 = new testTimer(); //使用該類定義了一個函式
extern "C" __declspec(dllexport) int start(); // dll
int start()
{
return test11->value1; //回傳value1的值
}
方法二:借用別人寫的在C#中顯示界面的類
在界面中呼叫類
testTimer *currenttest = new testTimer();//定義
void MainWindow::on_pushButton_2_clicked()
{
ui->doubleSpinBox->setValue(currenttest->value1);
}//界面里的一個按鈕,點擊按鈕彈出數值
在C#中,點擊一個按鈕1,彈出一個Qt撰寫的界面
點擊按鈕2 ,彈出函式value1值的一個界面
結果是 按鈕1 的界面 中點擊on_pushButton_2,此時的value1值一直在變化,符合預期
點擊按鈕2 彈出的value1的值一直是0。
有人知道什么原因么?是我沒有少添加了什么東西么?
uj5u.com熱心網友回復:



uj5u.com熱心網友回復:
圖片是最終的結果,可以看出直接呼叫自定義的類,讀取value1的值,value1的值不變。但是我在界面中呼叫自定義的類,然后讀取value1的值,value1的值是變化的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/173527.html
標籤:Qt
上一篇:虛擬機和真機除錯問題集合
下一篇:虛擬機和真機除錯問題集合
