[英]Qt Signals/Slots Changeable?
我一直在用Qt編寫一些基本應用程序,並且發現它的信號和插槽機制非常有幫助。 但是,我希望做些事情,但是我似乎無法弄清楚如何使其工作。
基本上,我希望有一個包含一些文本,圖片,任何內容和一個按鈕塊的屏幕。 當我按下按鈕時,我希望屏幕上的其他內容也相應地更改。 然后我要重復該過程。 我正在考慮的應用程序的工作原理類似於基於文本的基本游戲。
我希望寫這樣的東西:
void someFunction()
{
//Display some stuff
if(button1pressed())
{
//display some different stuff
if(button1pressed())
{
...
}
if(button2pressed())
{
...
}
if(button...pressed())
{
...
}
}
if(button2pressed())
{
//display some different stuff
if(button1pressed())
{
...
}
if(button2pressed())
{
...
}
if(button...pressed())
{
...
}
}
if(button...pressed())
{
//display some different stuff
if(button1pressed())
{
...
}
if(button2pressed())
{
...
}
if(button...pressed())
{
...
}
}
}
有沒有辦法像這樣嵌套按鈕按下? 還是另一種實現相同想法的方法? 謝謝!
嵌套過多的“ if”語句不是一個好主意。 為了代碼的可讀性,以及將來要更新軟件時使用的代碼。 一開始這總是很簡單,但隨后往往會變得很復雜...您可以使用狀態模式 ,該模式允許您根據所采取的操作來更改對象的行為。 每次調用按鈕都會更改對象的內部狀態,而完成此更改的方式可能取決於當前的內部狀態。 例如:
編輯:正如Kuba所說, QStateMachine是一個在此過程中幫助您的類。
另一個想法是存儲按下按鈕的順序。 將每個新聞事件連接到插槽( QSignalMapper可以幫助您),並將訂單存儲在列表中。 然后處理列表並采取相應的措施。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.