0
我有一個正在運行的ATM控制檯應用程序,我想修改它,使它具有使用Qt庫的GUI。在已經運行的C++控制檯應用程序上實現Qt Gui
我試圖在不改變大部分代碼的情況下實現它;相反,我想打電話給我正在使用的小工具cout
或cin
。但問題是,當我運行控制檯應用程序時,它只是加載表單並繼續而不讓我輸入所需的信息。我希望這是有道理的。
void ATM::authenticateUser()
{
screen.displayMessage("\nPlease enter your account number: ");
int accountNumber = keypad.getInput(); // input account number
screen.displayMessage("\nEnter your PIN: "); // prompt for PIN
int pin = keypad.getInput(); // input PIN
system("clear");
// set userAuthenticated to bool value returned by database
userAuthenticated = bankDatabase.authenticateUser(accountNumber, pin);
// check whether authentication succeeded
if (userAuthenticated) {
currentAccountNumber = accountNumber; // save user's account #
} // end if
else
screen.displayMessageLine(
"Invalid account number or PIN. Please try again.");
} // end function authenticateUser`
這聽起來很難。控制檯應用程序通常具有嚴格的輸入,處理和輸出序列。具有圖形用戶界面的應用程序通常允許對由事件驅動系統實現的輸入字段進行「隨機訪問」。如果你的appl。分爲輸入部分,處理部分和輸出部分,那麼應該可以通過Qt輸入對話框「交換」輸入部分。請提供(不要太大)反映您當前應用程序的示例代碼。然後應該可以顯示Qt可以在哪裏添加(以及如何)。 – Scheff
這就是當前設置的控制檯應用程序代碼 –
可能是,我誤解了你的問題。另一種方法是,編寫一個調用您的控制檯應用程序的Qt應用程序(使用'QProcess'),使用管道(I/O重定向)爲控制檯應用程序提供內容併爲顯示目的讀取輸出。 – Scheff