LINUX.ORG.RU

Несколько вопросов по Qt


0

0

1. Как привязать функцию к нажатию клавиши Enter на текущей строке в QTableView?
2. Почему на некоторых win-системах QLocale::system().name() возвращает "С", хотя интерфейс стоит русский?
3. Можно ли пример, как делать connect из родительского класса? Т.е. что-то типа:
void some_function()
{
    DialogClass myDialog;
    connect(...
}
★★★★★

Re: Несколько вопросов по Qt

1. у QTableView есть сигнал activated(const QModelIndex &index)

3. Не совсем понял вопрос, но видимо, QObject::connect(sender, SIGNAL(blabla()), receiver, SLOT(blabla())) :)

ero-sennin ★★ ()
Ответ на: Re: Несколько вопросов по Qt от ero-sennin

Re: Несколько вопросов по Qt

1. Да, это то что нужно.
3. Об этом в курсе. Интересует конкретная реализация.
Допустим имеем:
class PacketDialog : public QDialog, public Ui::PacketDialog
{
	Q_OBJECT
public:
	PacketDialog(QWidget *parent = 0);
private slots:
	void saveButton_clicked();
...

В классе Ui::PacketDialog есть кнопка saveButton.

Нужно подключить слот saveButton_clicked() из родительского класса, допустим MainWindow

void myFunction()
{
	PacketDialog myDialog;
	connect(myDialog.saveButton,
		clicked(),
		?,
		myDialog.saveButton_clicked());
}

Что нужно поставить на месте вопроса? this пробовал - не работает.

UVV ★★★★★ ()
Ответ на: Re: Несколько вопросов по Qt от UVV

Re: Несколько вопросов по Qt

connect(myDialog.saveButton, SIGNAL(clicked()), &myDialog, SLOT(saveButton_clicked())). По-моему, так. :)

И ещё слот saveButton_clicked() надо сделать public.

ero-sennin ★★ ()
Ответ на: Re: Несколько вопросов по Qt от ero-sennin

Re: Несколько вопросов по Qt

Спасибо, помогло. Моя ошибка заключалась в том, что я использовал не SLOT(saveButton_clicked()), а SLOT(myDialog.saveButton_clicked()).

P.S.: Вопрос номер 2 по прежнему открыт!

UVV ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.