crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

5 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
> Разрабатываю форму
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  


Цитата(TiiL @ 6.9.2011, 9:51) *
Ребята помогите(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? :blink:
Этот файл генерируется при компиляции из *.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
Прикрепленные файлы
Прикрепленный файл  exam.zip ( 1,7 килобайт ) Кол-во скачиваний: 118
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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  


Создай новый проект и выложи сюда, а то я ваще не пойду, что ты хочешь и что у тебя там творится ))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

5 страниц V   1 2 3 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


9 чел. читают эту тему (гостей: 9, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.11.2024, 22:43