2014-01-10 3 views
1

У меня есть список строк во время выполнения.Как показать список строк в QT во время выполнения?

Любой поможет мне отобразить эти строки в QWidget. Когда я щелкнул правой кнопкой мыши по этой строке, мне нужно иметь опцию show index, которая покажет индекс этой строки в QMessageBox.

Если это возможно, укажите техническое руководство.

спасибо.

+0

См. [Пример меню] (http://qt-project.org/doc/qt-5.0/qtwidgets/mainwindows-menus.html). – thuga

+0

@thuga: IMO, это намного больше, чем хочет OP. – lpapp

+0

@ LaszloPapp Да, но это все еще очень полезно. – thuga

ответ

2

ОК, так что давайте начнем с дизайна для вашего случая использования ...

  • Я бы рекомендовал использовать QListWidget для списка. Каждая строка может быть отдельным элементом.

  • Вы можете отобразить всплывающее окно для правого клика, но если оно имеет только действие индекса показа, оно действительно не имеет особого смысла. Вы можете сразу показать окно с этим индексом.

Я хотел бы написать что-то вроде этого ниже:

MyClass::MyClass(QObject *parent) 
    : QObject(parent) 
    , m_listWidget(new QListWidget(this)) 
{ 
    QStringList myStringList = QStringList() << "foo" << "bar" << "baz"; 
    m_listWidget->addItems(myStringList); 

    // Set up your action with the popup for right click if needed 
    // and connect to the "triggered" signal of the particular action 

    connect(listWidget, SIGNAL(itemClicked(QListWidgetItem * item)), SLOT(showMessageBox(QListWidgetItem * item))); 

    ... 

} 

void MyClass::showMessageBox(QListWidgetItem * item) 
{ 
    Q_UNUSED(item) 
    QMessageBox messageBox; 
    messageBox.setText(m_listWidget->currentRow()); 
    messageBox.exec(); 
} 

Если у вас есть дополнительные действия для правой кнопки мыши, вы можете использовать диалоговое окно всплывающего, да, с несколькими действиями, размещенных на, но до сих пор , это, по-видимому, не является прецедентом здесь.

+0

Ты гений. Еще раз спасибо. : D: D. Изменить: мне нужно всплывающее меню для добавления некоторых других меню для дальнейшего процесса. но все в порядке. теперь я научился добавлять всплывающее меню. Спасибо за помощь. – user3176618

+2

@ user3176618: добро пожаловать, но, пожалуйста, приложите больше усилий в будущем с вашими вопросами. – lpapp

+0

Я новичок в программировании, поэтому я постараюсь сделать это. – user3176618