![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
genusatplay |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
нужно написать программу "редактор шаблонов"
у нее должна быть область представления шаблона и например справа панель инструментов, в которой можно выбрать элемент (текст,таблица и т.д), перетащить элемент в окошко представления шаблона он должен выглядеть на подобии кнопки с именем элемента. далее если выделить элемент, то в панели инструментов появляется возможность редактировать свойства элемента(в БД есть таблица в которой каждому элементу присвоено значение, к примеру элемент text, в БД у него какое то значение есть, следовательно у элемента text должны быть свойства шрифт,размер, цвет и обычные свойства которые будут у всех типов элементов выравнивание, отступ слева, справа и тд, ) после создания шаблона все элементы кладутся в xml. xml вот такого вида должен получиться
а сам шаблон + документ(в БД) я уже могу с помощью консольной проги соединить и в пдф запихнуть по идее программа простая но только я не понимаю как это реализовать подскажите плиз с какой стороны копать и чем это реализовыватьь Сообщение отредактировал genusatplay - 29.11.2008, 13:40 |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
genusatplay, что-то с русским языком у тебя совсем напрежёнка.
|
|
|
genusatplay |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
molchanoviv |
![]()
Сообщение
#4
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
genusatplay |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
так лучше?
Сообщение отредактировал genusatplay - 29.11.2008, 13:42 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
все равно понятного мало, это что-то вроде Qt Designer'а получится должно или нет?
|
|
|
genusatplay |
![]()
Сообщение
#7
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
все равно понятного мало, это что-то вроде Qt Designer'а получится должно или нет? хм.. должно получиться приложение для создания шаблона, похожее наверно больше на TextEdit только в нем можно располагать элементы, редактировать их свойства, и выгружать в xml почему больше на textedit похоже будет.. ну наверно чтоб было видно, как будет виден документ |
|
|
Litkevich Yuriy |
![]()
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
genusatplay, я в толк взять не могу, для чего шаблоны-то? Для текста? Можешь привести снимок программы, в которой такое есть?
|
|
|
genusatplay |
![]()
Сообщение
#9
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
у меня просто задание сделать консольную прогу которая из шаблона и данных(в бд) делает пдф,
и гуи прогу с помощью которой шаблоны можно делать да шаблоны для текста |
|
|
kwisp |
![]()
Сообщение
#10
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
у меня просто задание сделать консольную прогу которая из шаблона и данных(в бд) делает пдф, и гуи прогу с помощью которой шаблоны можно делать да шаблоны для текста интересное задание. а на сколько реализовать нужно пдф??? на сколько мне известно это формат еще ни один просмотрщик не реализовал полностью. предполагается, что элементы на шаблоне: текст, картинка, ссылка(?), что то еще??? |
|
|
genusatplay |
![]()
Сообщение
#11
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
у меня просто задание сделать консольную прогу которая из шаблона и данных(в бд) делает пдф, и гуи прогу с помощью которой шаблоны можно делать да шаблоны для текста интересное задание. а на сколько реализовать нужно пдф??? на сколько мне известно это формат еще ни один просмотрщик не реализовал полностью. предполагается, что элементы на шаблоне: текст, картинка, ссылка(?), что то еще??? ну еще таблица, из textedita экспортится в pdf нормально |
|
|
kwisp |
![]()
Сообщение
#12
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
а вопрос состоял: с чего начать???
если мало мальски знаком с Qt, попробуй начать с элементов, которые будешь тащить на полотно шаблона. 1. общие свойства 2. свойства каждого в отдельности. допустим: когда юзер тащит элемент на полотно создаем новый объект класса выбранного элемента, затем редактируем его свойства, затем тащим следующий элемент, после нажатия заветной кнопки СоздатьШаблон бежим по массиву указателей на элементы составленному в соответствии с положением элементов : слева направо сверху вниз читаем их свойства и с помощью Qt механизмов работы с хмл или своих пишем файл. (к примеру о тексте) у меня такой вопрос: создание шаблона тем способом которым ты хочешь слабо отражает наглядно изменение размера текста а из-за отсутствия самого текста следовательно ты даже ориентировочно не знаешь сколько места займет твой текст. на шаблоне одна кнопка а в реальности 20 страниц. отсюда вопрос: я подозреваю, что ты все же знаешь сколько примерно будет букоф в тексте какая картинка может быть какой колонтитул какая таблица??? |
|
|
genusatplay |
![]()
Сообщение
#13
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
а вопрос состоял: с чего начать??? если мало мальски знаком с Qt, попробуй начать с элементов, которые будешь тащить на полотно шаблона. 1. общие свойства 2. свойства каждого в отдельности. допустим: когда юзер тащит элемент на полотно создаем новый объект класса выбранного элемента, затем редактируем его свойства, затем тащим следующий элемент, после нажатия заветной кнопки СоздатьШаблон бежим по массиву указателей на элементы составленному в соответствии с положением элементов : слева направо сверху вниз читаем их свойства и с помощью Qt механизмов работы с хмл или своих пишем файл. (к примеру о тексте) у меня такой вопрос: создание шаблона тем способом которым ты хочешь слабо отражает наглядно изменение размера текста а из-за отсутствия самого текста следовательно ты даже ориентировочно не знаешь сколько места займет твой текст. на шаблоне одна кнопка а в реальности 20 страниц. отсюда вопрос: я подозреваю, что ты все же знаешь сколько примерно будет букоф в тексте какая картинка может быть какой колонтитул какая таблица??? на данный момент так и получается, что я незнаю как будет выглядеть текст, надо будет уточнить этот вопрос |
|
|
kwisp |
![]()
Сообщение
#14
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
можно попробовать сделать так: будет два документа
на один тащишь и размещаешь а на другом показываешь как это будет выглядеть. но опять же тестовый образец текста и картинки будут занимать опр кол-во места. можно просить указывать пользователя количество хотя бы килобайт, но вопрос сколько в определенном шрифте займет места... еще вопрос а как ты в хмл пустые строки делаешь. чтоб в пдф получился отступ ну или пустые строчки.??? |
|
|
genusatplay |
![]()
Сообщение
#15
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
можно попробовать сделать так: будет два документа на один тащишь и размещаешь а на другом показываешь как это будет выглядеть. но опять же тестовый образец текста и картинки будут занимать опр кол-во места. можно просить указывать пользователя количество хотя бы килобайт, но вопрос сколько в определенном шрифте займет места... еще вопрос а как ты в хмл пустые строки делаешь. чтоб в пдф получился отступ ну или пустые строчки.??? там есть настройка отступ слева справа сверху снизу вот начал тока форму делать.. чета непойму что он хочет..
Прикрепленные файлы
|
|
|
kwisp |
![]()
Сообщение
#16
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
elemList = new List(); //чего это такое??
я сделал так: 28 строка // elemList = new List();// здесь ругался компилятор потому что ты не указал тип elemList 29 строка 30 строка frameLayout->addWidget(new List()); и твоя чудо форма появилась ![]() на одной строчке не может быть и таблица и текст???? почитай пожалуйста о работе с памятью в Qt . у тебя elemList никому не принадлежит не член класса и ты его явно не грохаешь "delete`ом" когда помять вернешь спрашвается??? |
|
|
genusatplay |
![]()
Сообщение
#17
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
в qt demos есть пример с пазлм из картинки там написано так:
и работает.. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#18
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
и работает.. значит piecesList, где-то объявлена, если просто написать имя переменной, то компилер должен ругаться, так как он незнает типа переменной.genusatplay, вот этот кусок кода вобще ахинея:
Это С++, а не Оберон! |
|
|
genusatplay |
![]()
Сообщение
#19
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
и работает.. значит piecesList, где-то объявлена, если просто написать имя переменной, то компилер должен ругаться, так как он незнает типа переменной.genusatplay, вот этот кусок кода вобще ахинея:
Это С++, а не Оберон! с list'ом тупанул.. в *.h была прописана переменная.. я незаметил терь все как надо а с итемами что нетак? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#20
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
а с итемами что нетак? нормальная практика это объявление указателя, а затем динамическое (через оператор new) создание объекта и инициализация указателя. Т.е. например так:
если тебе переменные p_i* будут нужны в дальнейшем, то их нужно объявлять в классе, чтобы область видимости была "Весь класс". Если же в дальнейшем не нужна, то можно объявить как в пример (в теле функции), но область видимости при этом только данная функция. |
|
|
genusatplay |
![]()
Сообщение
#21
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
а с итемами что нетак? нормальная практика это объявление указателя, а затем динамическое (через оператор new) создание объекта и инициализация указателя. Т.е. например так:
если тебе переменные p_i* будут нужны в дальнейшем, то их нужно объявлять в классе, чтобы область видимости была "Весь класс". Если же в дальнейшем не нужна, то можно объявить как в пример (в теле функции), но область видимости при этом только данная функция. мне нужно будет только узнавать какой элемент был перенесен на форму(вроде больше ненужно).. для этого мне нужны эти переменные будут? хотя пускай будут.. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#22
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
вот этой строке:
не место в классе, который где-то зарыт в программе. Представь себе ситуацию: ты используешь сторонний класс (разработан кем-то), а он вдруг устанавливает иконку приложения. Такую строку надо делать в функции main либо создавать предка от QAplication и в нем устанавливать иконки, переводчики, пути к библиотекам и т.п. вот этой строке: Прошу прощения, тут я чушь сморозил (думал иконка приложения устанавливается)
QIcon icon = qApp->style()->standardIcon(QStyle::SP_DriveDVDIcon); Language: cpp не место в классе, который где-то зарыт в программе. Представь себе ситуацию: ты используешь сторонний класс (разработан кем-то), а он вдруг устанавливает иконку приложения. Такую строку надо делать в функции main либо создавать предка от QAplication и в нем устанавливать иконки, переводчики, пути к библиотекам и т.п. |
|
|
genusatplay |
![]()
Сообщение
#23
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
подскажите плиз что мне делать?
я не представляю вообще(все из за нервов.. уже сдавать скоро)... подскажите что юзать |
|
|
genusatplay |
![]()
Сообщение
#24
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
как мне сделать чтото типа записи?
хочу сделать лист записей который будет содержать прямоугольник который будет рисоваться и параметры поясните что такое dragEnterEvent dragMoveEvent dropEvent и mousePressEvent вроде понятно эвент при отпускании элемента и эвент при нажатии клавиши или мб ктонить.. объясните как работает драг&дроп ласт едит
что нужно создавать вместо QLabel? или как правильно запихивать из ListItem'а иконку в QLabel? Сообщение отредактировал genusatplay - 2.12.2008, 1:18
Прикрепленные файлы
|
|
|
trdm |
![]()
Сообщение
#25
|
Дмитрий Трошин ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: ![]() ![]() ![]() |
как все запущено...
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#26
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
genusatplay |
![]()
Сообщение
#27
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
ну я взял этот кусок из демки "draganddrop" только там перетаскивали label'ы я переделал впринципе под себя эту реакцию на эвент.. но с лэйблом выскакивает ошибка.. я так понял что он создает лэйбл.. такойже как и лэйбл на котором мы нажали.. но у меня то не лэйбл, а List , вот я и спрашиваю как переделать так чтоб для list'а пошло? и как определить на каком элементе мы нажали и начали тянуть? чтоб для разных элементов сделать разные иконки, или не иконки а чтонить другое |
|
|
kwisp |
![]()
Сообщение
#28
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
genusatplay,
не в обиду. по вопросам ясно что знания Qt и С++ "недостаточные". ты оцени сколько времени до сдачи и какие вопросы ты задаешь. очевидно это твой первый проект, наверное сложнова-то для первого раза. может тебе если нужно просто сдать стоит пойти обходным путём? а если есть желание начать посерьёзнее изучать и пользовать Qt+C++ так взять и основательно заняться этим вопросом. написать что нить по проще, поработать с ассистентом, почитать темы в ЭТОМ форуме, почитать М.Шлее в русском переводе и т.д. и т.п. сколько у тебя времени признавайся? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#29
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
genusatplay |
![]()
Сообщение
#30
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
genusatplay, не в обиду. по вопросам ясно что знания Qt и С++ "недостаточные". ты оцени сколько времени до сдачи и какие вопросы ты задаешь. очевидно это твой первый проект, наверное сложнова-то для первого раза. может тебе если нужно просто сдать стоит пойти обходным путём? а если есть желание начать посерьёзнее изучать и пользовать Qt+C++ так взять и основательно заняться этим вопросом. написать что нить по проще, поработать с ассистентом, почитать темы в ЭТОМ форуме, почитать М.Шлее в русском переводе и т.д. и т.п. сколько у тебя времени признавайся? хех.. вы будете смеяться =) это даже не лаба... )) сдача диплома на след неделе ^.^ |
|
|
Litkevich Yuriy |
![]()
Сообщение
#31
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
genusatplay |
![]()
Сообщение
#32
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#33
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
genusatplay, ну замени здесь QLable (два штуки) на тот тип какой тебе надо.
Смысл этой строки простой: QLabel *child - создается указатель на нужный, в данном случае QLable, тип = - этим оператором указатель инициализируется, т.к. сначало он показывал в никуда. event->pos() - возвращает позицию (QPoint) childAt(P) - возвращает видимый дочерний виджет в точке P static_cast<QLabel*>(T) - здесь тип Т приводится к типу указатель на QLabel и того, мы привели тип объекта находящегося под указателем мыши к указателю на QLable, и проинициализировали им объявленный только что указатель. Но сделали это не с бухты, барахты, а потому, что точно знаем, что унас имеется QLable. |
|
|
genusatplay |
![]()
Сообщение
#34
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
вот упростил..
скажите плиз почему элемент не добавляется? и как лучше организовать хранение информации(свойств текста) для каждого элемента(лэйбла)
Прикрепленные файлы
|
|
|
kwisp |
![]()
Сообщение
#35
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
molchanoviv |
![]()
Сообщение
#36
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: ![]() ![]() ![]() |
хех.. вы будете смеяться =) это даже не лаба... )) сдача диплома на след неделе ^.^ Ну время еще есть. Я всем рассказываю как я сдавал курсовую по теме "Алгоритмы неявных численных схем". За день до отчисления у меня ничего не было вообще, сам я был пьян, и единственное то помнил, так это то что тема про какие-то там схемы. И ничего на следующий день у меня в зачетке стояло "зачтено". А вообще эти сообщения лучше перенести в треп: 1 сообщение 2 сообщение 3 сообщение Я думаю что там они уместнее. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#37
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
genusatplay |
![]()
Сообщение
#38
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
подскажите пожалйста почему не работает добавление элемента?
mainwindow.cpp #include <QtGui> #include "mainwindow.h" #include "dragwidget.h" MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent) { setupWidgets(); setupMenus(); setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); setWindowTitle(tr("Shablon editor")); } void MainWindow::setupMenus() { fileMenu = menuBar()->addMenu(tr("&File")); exitAction = fileMenu->addAction(tr("E&xit")); exitAction->setShortcut(QKeySequence(tr("Ctrl+Q"))); connect(exitAction, SIGNAL(triggered()) , qApp , SLOT(quit())); itemMenu = menuBar()->addMenu(tr("&Item")); addText = itemMenu->addAction(tr("Add &Text")); connect(addText, SIGNAL(triggered()) , qApp , SLOT(addEl())); // несоздает почемуто лэйбл } void MainWindow::setupWidgets() { QFrame *frame = new QFrame; QHBoxLayout *frameLayout= new QHBoxLayout(frame); editor = new DragWidget; frameLayout->addWidget(editor); setCentralWidget(frame); } void MainWindow::addEl() { AddElem *elem = new AddElem(editor); } mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> class DragWidget; class QListWidgetItem; class AddElem; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); DragWidget *editor; //AddElem *elem; void addEl(); private: void setupMenus(); void setupWidgets(); QMenu *fileMenu; QMenu *itemMenu; QAction *addText; QAction *exitAction; }; #endif dragwidget.h #ifndef DRAGWIDGET_H #define DRAGWIDGET_H #include <QFrame> QT_BEGIN_NAMESPACE class QDragEnterEvent; class QDropEvent; QT_END_NAMESPACE //! [0] class DragWidget : public QFrame { public: DragWidget(QWidget *parent=0); //void addElem(QFrame *parent); protected: void dragEnterEvent(QDragEnterEvent *event); void dragMoveEvent(QDragMoveEvent *event); void dropEvent(QDropEvent *event); void mousePressEvent(QMouseEvent *event); }; //! [0] class AddElem : public QLabel { public: AddElem(QFrame *parent=0); }; #endif dragwidget.cpp #include <QtGui> #include "dragwidget.h" //! [0] DragWidget::DragWidget(QWidget *parent) : QFrame(parent) { setMinimumSize(200, 200); setFrameStyle(QFrame::Sunken | QFrame::StyledPanel); setAcceptDrops(true); //setBackgroundRole(Qt::white); QLabel *boatIcon = new QLabel(this); boatIcon->setText("OMAGA"); boatIcon->move(40, 40); boatIcon->show(); boatIcon->setAttribute(Qt::WA_DeleteOnClose); QLabel *carIcon = new QLabel(this); carIcon->setText("asdasd"); carIcon->move(120, 20); carIcon->show(); carIcon->setAttribute(Qt::WA_DeleteOnClose); QLabel *houseIcon = new QLabel(this); //houseIcon->setPixmap(QPixmap(":/images/house.png")); houseIcon->setText("!@!@"); houseIcon->move(20, 120); houseIcon->show(); houseIcon->setAttribute(Qt::WA_DeleteOnClose); //AddElem *elem = new AddElem(this); //так элемент добавляется нормально } //! [0] void DragWidget::dragEnterEvent(QDragEnterEvent *event) { ... } void DragWidget::dragMoveEvent(QDragMoveEvent *event) { ... } void DragWidget::dropEvent(QDropEvent *event) { ... } void DragWidget::mousePressEvent(QMouseEvent *event) { ... } AddElem::AddElem(QFrame *parent) : QLabel(parent) { QLabel *elem = new QLabel(parent); elem->setText("TextElement"); elem->move(10,10); elem->show(); elem->setAttribute(Qt::WA_DeleteOnClose); } main.cpp #include <QApplication> #include <QHBoxLayout> #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow w; w.show(); //w.addEl(); //так тоже элемент добавляется return app.exec(); } |
|
|
genusatplay |
![]()
Сообщение
#39
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
народ помогите плиз советом..
у меня есть QGraphicScene на котором я создаю (class DiagramItem : public QGraphicsPolygonItem) в диаграм итеме храниться полигон и инфа(параметры) я подобавлял на форму итемов, поредактил их терь нада все сохранить в файл xml.. но вот в чем проблема.. итемы добавлялись в сцену в произвольном порядке.. мне нужно отсортировать их слева направа сверху вниз по их координатам x,y относительно полотна а потом выгрузить в файл и еще отнимать от Элемент_списка.x Предыдуший_элемент.x чтоб в итоге получать в шаблоне отступ относительно предыдущего элемента. мб есть какиенибудь стандартные фичи для такой сортировки? если нет.. подскажите как мне это сделать? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#40
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
genusatplay |
![]()
Сообщение
#41
|
Студент ![]() Группа: Участник Сообщений: 50 Регистрация: 8.11.2008 Пользователь №: 416 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#42
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
вроде это продолжение "редактора шаблонов" Это проффессиональный форум, в котором используется практика: "одна проблема - одна тема".Суть этого подхода проста - человек приходит на форум в поиска решения проблемы и ищет он по названию темы, которое отражает проблему. теме "редактор шаблонов" место в лучшем случае в "Технике програмирования", если нужно решить вопрос об организации программы. Но по факту место в "Трёпе". |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 21.6.2025, 22:13 |