Разрабатываю форму |
Здравствуйте, гость ( Вход | Регистрация )
Разрабатываю форму |
TiiL |
6.9.2011, 9:51
Сообщение
#1
|
Участник Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ребята помогите(1000 раз, уже стыдно заморачивать вас, но всё же).
нарисовал форму: ui_dialog.h\ class Ui_Dialog { public: QPushButton *OpenButton; QLabel *Path; QTextEdit *OpenFileName; void setupUi(QDialog *Dialog) { if (Dialog->objectName().isEmpty()) Dialog->setObjectName(QString::fromUtf8("Dialog")); Dialog->resize(400, 300); OpenButton = new QPushButton(Dialog); OpenButton->setObjectName(QString::fromUtf8("OpenButton")); OpenButton->setGeometry(QRect(300, 40, 75, 23)); Path = new QLabel(Dialog); Path->setObjectName(QString::fromUtf8("Path")); Path->setEnabled(false); Path->setGeometry(QRect(40, 80, 331, 16)); OpenFileName = new QTextEdit(Dialog); OpenFileName->setObjectName(QString::fromUtf8("OpenFileName")); OpenFileName->setGeometry(QRect(10, 40, 291, 21)); retranslateUi(Dialog); QMetaObject::connectSlotsByName(Dialog); } // setupUi void retranslateUi(QDialog *Dialog) { Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0, QApplication::UnicodeUTF8)); OpenButton->setText(QApplication::translate("Dialog", "OpenFiles", 0, QApplication::UnicodeUTF8)); } // retranslateUi }; namespace Ui { class Dialog: public Ui_Dialog {}; создал головной файл: dialog.h исходныe файлы: dialog.cpp main.cpp всё стандартно. dialog.cpp #include "dialog.h" #include "ui_dialog.h" #include <QFileDialog> #include <QtGui> Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); } Dialog::~Dialog() { delete ui; } void Dialog::on_OpenButton_clicked() { QString selectedFilter; QString fileName = QFileDialog::getOpenFileName(this,"Open File","C:", tr("Text Files (*.txt);;All Files (*)"),&selectedFilter); if (!fileName.isEmpty()) OpenFileName->setText(fileName); } вотпроблема такая: выбираю файл и хочу чтоб в OpenFileName писалось название файла. а в Pаth пиcался адресс к файлу. Но при сборке компилятор не видит то что я создал OpenFileName, хотя инклудю на ui_dialog.h где это обьявляется. что я не правильно понимаю и делаю. |
|
|
MJIbIu |
6.9.2011, 10:29
Сообщение
#2
|
Студент Группа: Участник Сообщений: 38 Регистрация: 14.4.2010 Пользователь №: 1630 Спасибо сказали: 3 раз(а) Репутация: 0 |
Ребята помогите(1000 раз, уже стыдно заморачивать вас, но всё же). вотпроблема такая: выбираю файл и хочу чтоб в OpenFileName писалось название файла. а в Pаth пиcался адресс к файлу. Но при сборке компилятор не видит то что я создал OpenFileName, хотя инклудю на ui_dialog.h где это обьявляется. что я не правильно понимаю и делаю. http://doc.crossplatform.ru/qt/4.7.x/signalsandslots.html При нажатие кнопки OpenButton у тебя ничего не происходит, тебе надо использовать сигнал и слоты, чтобы вызвать on_OpenButton_clicked() - сделай ее слотом тока. |
|
|
TiiL |
6.9.2011, 10:49
Сообщение
#3
|
Участник Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: 0 |
void Dialog::on_OpenButton_clicked()
{ QString selectedFilter; QString fileName = QFileDialog::getOpenFileName(this,"Open File","C:", tr("Text Files (*.txt);;All Files (*)"),&selectedFilter); вот это работает, открывается диологовое окно виндовое с выбором файла, а вот нужно чтоб название файла вышло в OpenFileName или окно открывается, а файл не открывается? |
|
|
RazrFalcon |
6.9.2011, 11:28
Сообщение
#4
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
После выбора файла, его имя будет содержать fileName.
|
|
|
TiiL |
6.9.2011, 12:59
Сообщение
#5
|
Участник Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: 0 |
RazrFalcon, я это понимаю. У меня вопрос , если я объявляю QTextEdit *OpenFileName; в ui_dialog.h , то в dialog.cpp OpenFileName->setText(fileName); не понимает меня?
|
|
|
RazrFalcon |
6.9.2011, 13:06
Сообщение
#6
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Зачем вы вообще что то пишете в ui_dialog.h?
Этот файл генерируется при компиляции из *.ui файла. Сделайте все через дизайнер, и не будет ни каких проблем. Цитата то в dialog.cpp OpenFileName->setText(fileName); не понимает меня? Так и говорит: я не понимаю? ошибки какие?
|
|
|
TiiL |
6.9.2011, 13:10
Сообщение
#7
|
Участник Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: 0 |
извеняюсь, вы правы я ничего не пишу в ui_dialog.h дизайнер всё сакм там пишит, я имел ввиду что она там пишит и объявляет QTextEdit *OpenFileName;
комплиятор пишит: dialog.cpp: In member function 'void Dialog::on_OpenButton_clicked()': dialog.cpp:27: error: 'OpenFileName' was not declared in this scop А когда я в dialog.h объявляю QTextEdit *OpenFileName;, сборка проходит нормально, но при запуске программы, а точнее выборе файла у меня вылетает программа Сообщение отредактировал TiiL - 6.9.2011, 13:16 |
|
|
RazrFalcon |
6.9.2011, 13:57
Сообщение
#8
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
QTextEdit *OpenFileName; - не нужен.
QTextEdit с именем OpenFileName есть у вас на форме? UPD: добавил пример. Сообщение отредактировал RazrFalcon - 6.9.2011, 14:01
Прикрепленные файлы
|
|
|
TiiL |
6.9.2011, 14:04
Сообщение
#9
|
Участник Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: 0 |
есть вот что написал дизайнер в ui_dialog.h
QTextEdit *OpenFileName; void setupUi(QDialog *Dialog) { ... OpenFileName = new QTextEdit(Dialog); OpenFileName->setObjectName(QString::fromUtf8("OpenFileName")); OpenFileName->setGeometry(QRect(10, 40, 291, 21)); } |
|
|
MJIbIu |
6.9.2011, 14:13
Сообщение
#10
|
Студент Группа: Участник Сообщений: 38 Регистрация: 14.4.2010 Пользователь №: 1630 Спасибо сказали: 3 раз(а) Репутация: 0 |
Создай новый проект и выложи сюда, а то я ваще не пойду, что ты хочешь и что у тебя там творится ))
|
|
|
Текстовая версия | Сейчас: 23.11.2024, 22:43 |