我有一個使用QT4的C++項目。我已經使用QT Designer來構建我的表單,並且在頂部欄中我有"File -> Open Image"
。 「Open Image
」作品由QT設計師指定爲QObject
與objectName: actionOpen_Image
。如何從QT UI菜單欄(頂部菜單)開始打開文件(圖像)
我該如何從用戶按這個QObject
,選擇一個圖像並獲取它的路徑,以便我可以加載它?
我有一個使用QT4的C++項目。我已經使用QT Designer來構建我的表單,並且在頂部欄中我有"File -> Open Image"
。 「Open Image
」作品由QT設計師指定爲QObject
與objectName: actionOpen_Image
。如何從QT UI菜單欄(頂部菜單)開始打開文件(圖像)
我該如何從用戶按這個QObject
,選擇一個圖像並獲取它的路徑,以便我可以加載它?
一般來說,菜單項是QAction對象 - 如果你能讓你的對象成爲一個動作,那將是一個好的第一步。
QAction
s有一個信號triggered它是在用戶選擇時發出的。該信號可以連接到slot
,其可以是part of an existing QObject
or custom-defined。
要創建並用slot
對象,下面的例子是有用的:
class MyClass : QObject{
Q_OBJECT //<---macro which flags the class for the Meta-Object Compiler(moc) tool
public:
MyClass(QObject* parent=):QObject(parent){}
public slots: //<--- also for the moc tool to handle
void mySlot(){
//custom behavior
QString fileName = QFileDialog::getOpenFileName(/*args*/);
}
};
這裏,QFileDialog class被使用(通過一個static
方法),以獲得一個文件的名稱。您可以爲文件類型和其他有用的屬性設置過濾器,並且對話框將使用您正在使用的任何操作系統的本機文件對話框。
使用connect(QObject* sender, SIGNAL, QObject* receiver, SLOT)
方法將QAction::triggered
信號連接到您希望激活的slot
。
實際執行取決於你當然,希望這可以讓你開始。
這是一個廣泛的問題!你可以看看這個Qt示例,以獲取有關信號/插槽和標準對話框的開端:http://qt-project.org/doc/qt-4.8/dialogs-standarddialogs.html – Koying 2012-03-06 01:36:59