Russian Qt Forum

Qt => QSS => Тема начата: ruzik от Февраль 09, 2011, 17:35



Название: Таблицы стилей
Отправлено: ruzik от Февраль 09, 2011, 17:35
Здравствуйте, захотел сделать фоновое изображение для всех QToolBar, пишу
this->setStyleSheet("QToolBar {background-image: url(:/picture/MainToolBar.png);}");
Ничего не работает, хотя в папке проекта/picture есть файл MainToolBat.png, пробовал с цветами-все нормально, работает


Название: Re: Таблицы стилей
Отправлено: Fat-Zer от Февраль 09, 2011, 18:02
ни разу не работал со стилями, но
а) попробовать полный путь
б) посмотреть в какую папку проект собирается и попробовать скопировать это туда


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 09, 2011, 18:23
Действительно попробовал c:/pictures/MainToolBar.png и все работает, а не подскажите куда могут скидываться проекты VS, а то в главной папке проекта я нашел две папки с exe-это Release и Debug, как я понимаю это релиз и отладка, но в релизе проект явно устарел, тем более я установил иконку и не там и не там её нет, и сам проект после компилирования в VS запускается с обычной иконкой, вместо моей. Не подскажите может я чего напутал?


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 09, 2011, 18:26
С иконкой проблема решилась- в том плане, что после компилирования VS запускает проект с правильной иконкой, а не подскажите как можно посмотреть папку откуда стартовал процесс


Название: Re: Таблицы стилей
Отправлено: Fat-Zer от Февраль 09, 2011, 18:51
С иконкой проблема решилась- в том плане, что после компилирования VS запускает проект с правильной иконкой, а не подскажите как можно посмотреть папку откуда стартовал процесс
Со студией я конечно работал больше, чем со стилями, но всё равно знаком не сильно, так что могу только предложить покопаться в настройках проэкта


Название: Re: Таблицы стилей
Отправлено: Igors от Февраль 09, 2011, 19:04
ruzik, мне кажется не стоит использовать форум как "палочку-выручалочку" на все случаи жизни. Проверьте-перепроверьте а потом уж спрашивайте. Когда "ну никак не получается" - разговор один, а когда видно что хочется проскочить побыстрее (на шару) - другой  :)


Название: Re: Таблицы стилей
Отправлено: twp от Февраль 09, 2011, 19:30
Действительно попробовал c:/pictures/MainToolBar.png и все работает, а не подскажите куда могут скидываться проекты VS, а то в главной папке проекта я нашел две папки с exe-это Release и Debug, как я понимаю это релиз и отладка, но в релизе проект явно устарел, тем более я установил иконку и не там и не там её нет, и сам проект после компилирования в VS запускается с обычной иконкой, вместо моей. Не подскажите может я чего напутал?
не используй путя, ни относительные ни абсолютные. Добавь в файл ресурсов и грузи из него


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 09, 2011, 22:12
Я добавил картинку в ресурсы, а не подскажите как достать её


Название: Re: Таблицы стилей
Отправлено: serg_hd от Февраль 09, 2011, 22:24
Код
C++ (Qt)
QPixmap(":/images/img.png")
 


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 10, 2011, 10:36
А можно поточнее, я объявляю новый QPixmap
Далее  делаю функцию QPixmap(":/images/MainToolBat.jpg")(если в моем случае)
Но на это мне выдает ошибку, говорит что функция не принимает 1 аргумент
А если сунуть это в setStyleSheet, то ни
this->setStyleSheet("QToolBar {background-image: url(:/images/MainToolBar.jpg);");
ни
this->setStyleSheet("QToolBar {background-image: :/images/MainToolBar.jpg;");
не работают


Название: Re: Таблицы стилей
Отправлено: GreatSnake от Февраль 10, 2011, 14:04
А у вас поддержка JPEG включена в Qt?


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 10, 2011, 14:08
Не знаю, если для этого требуется что-то прописывать в коде, то я ничего не делал


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 10, 2011, 14:13
Сделал изображение в формате png


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 10, 2011, 14:18
Я добавил ресурсы в дизайнер, если что
А сам работаю в VS
 (http://saveimg.ru/thumbnails/10-02-11/3c74f11758b308f7a4e10f5fa4ef014e.JPG) (http://saveimg.ru/show-image.php?id=136233e426e90d2dd1044cc86539bd87)


Название: Re: Таблицы стилей
Отправлено: Пантер от Февраль 10, 2011, 14:21
.......(":/images/MainToolBat.jpg")
А в ресурсах :/picture/.....


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 10, 2011, 14:34
А можете подробно расписать, уж извините за мою долгодогоняемость(


Название: Re: Таблицы стилей
Отправлено: Пантер от Февраль 10, 2011, 14:43
Ну, почему ты указал images, если в ресурсах у тебя картинки в picture?


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 10, 2011, 18:30
Просто сначала было в images, потом искал проблему, удалил эту папку, сделал новую назвал её по-другому
Но это ничего не меняет пробовал this->setStyleSheet("QToolBar {background-image: url(:/picture/MainToolBar.png);");
Теперь пробовал даже на точный путь-не идет, то есть написал this->setStyleSheet("QToolBar {background-image: url(с:/picture/MainToolBar.png);"); - не работает, все файлы есть, пробовал без url, кстати за что url отвечает?
Может я чего в синтаксисе напортачил и все-таки, пожалуйста, распишите как правильно достать файл из ресурсов и вставить его в мой синтаксис, ведь там функция принимает QSting, а не изображение.
И вообще если дизайнером вставить ресурс, он будет нормально работать, и будет ли он вообще виден, или может эта фича только с Creator'ом работает?


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 10, 2011, 21:42
Помогите пожалуйста, я действительно запутался  :-[


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 11, 2011, 14:48
Хотя бы скажите как можно посмотреть откуда стартовал процесс, чтобы узнать точную папку куда кинуть изображение


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 11, 2011, 14:51
И не подскажите что же все-таки означает url- это доставание адреса или ресурса


Название: Re: Таблицы стилей
Отправлено: Пантер от Февраль 11, 2011, 14:51
qDebug () << QCoreApplication::applicationDirPath ()


Название: Re: Таблицы стилей
Отправлено: Пантер от Февраль 11, 2011, 14:52
Глянь еще QUrl QUrl::fromLocalFile ( const QString & localFile ) [static]


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 11, 2011, 15:19
Как я понял из ассистента, что из ресурса, если я не прав то подправьте пожалуйста, так как непонятно что подразумевается под локальным файлом, как я понял, это все-таки ресурс


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 12, 2011, 11:44
Предположим, что у меня есть папка с картинкой под названием a.png, картинка в папке с приложением, напишите пожалуйста, как правильно установить эту картинку на задний фон тулбаров, с помощью setStyleSheet()


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 14, 2011, 15:43
Дайте мне пример в котором хоть каким-нибудь образом устанавливается картинка на ToolBar, пожалуйста запихните в архив файлы и картинку или ресурс


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 15, 2011, 15:49
Попытался сделать ресурс прямо в VS
Делаю новый ресурс, новую папку, хочу загрузить файл, выбираю его и мне выдает
... is not in a subdirectory of the resource file. You now have the opinion to copy this file to a valid location
И просит сохранить файл в правильную папку, а в какую это правильную папку, если ему сама папка проекта не подходит


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 15, 2011, 15:53
В дизайнере скопировал путь к файлу вставляю его в строку, получаю следующее:
this->setStyleSheet("QToolBar {background-image: url(:/MyBr/picture/MainToolBar.png);}");
Но картинки так и нет  :(


Название: Re: Таблицы стилей
Отправлено: meego_man от Февраль 16, 2011, 16:01
В дизайнере скопировал путь к файлу вставляю его в строку, получаю следующее:
this->setStyleSheet("QToolBar {background-image: url(:/MyBr/picture/MainToolBar.png);}");
Но картинки так и нет  :(
На всякий случай спрошу. Далее по коду больше нет вызовов this->setStyleSheet? Потому что в Qt-creator все прекрасно работает, в VC проверить сейчас не могу, нужно скачивать вариант с VC библиотеками


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 16, 2011, 17:13
И вправду, за этим кодом стоял еще 1 setStyleSheet, убрал- все нормально работает, но почему такая фигня, ведь последний sSS был обращен вообще к другому объекту?


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 16, 2011, 17:13
meego_man, огромнейшее спасибо за помощь!!!


Название: Re: Таблицы стилей
Отправлено: meego_man от Февраль 16, 2011, 17:24
И вправду, за этим кодом стоял еще 1 setStyleSheet, убрал- все нормально работает, но почему такая фигня, ведь последний sSS был обращен вообще к другому объекту?
В смысле к другому? если там было this->setStyleSheet, а внутри просто стиль для другого компонента, то он просто перкрывает предыдущий. Если нужно установить стили для разных компонентов глобально, то это делается одним вызовом, с перечислением всех нужных компоненов. Или же назначаются таблицы стилей для каждого объекта отдельно :)


Название: Re: Таблицы стилей
Отправлено: ruzik от Февраль 16, 2011, 17:55
Цитировать
Или же назначаются таблицы стилей для каждого объекта отдельно
Огромное спасибо за помощь, учту в следующий раз