Russian Qt Forum
Май 06, 2024, 01:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 [2] 3 4 ... 21
16  Qt / Вопросы новичков / Как в QVBoxLayout скрыть виджет, не меняя разтяжения остальных виджетов? : Июль 24, 2020, 10:34
Здравствуйте, господа форумчане.

У меня есть окно с тремя кнопками. Всем кнопкам задано свойство sizePolicy и minimumSize, как показано
на рисунке 1. Кнопки лежат в QVBoxLayout. Для которого заданы свойства, смотрите рисунок 2.

В результате окно имеет вид, рисунок 3 а). Когда я скрываю первую кнопку, с помощью метода setHidden(),
остальные две кнопки растягиваются по вертикали (рисунок 3 б)).

Как сделать так, чтобы место первой кнопки оставалось не затронутым, и две остальные кнопки не растягивались
(рисунок 4).

Если использовать QGridLayout, то когда скрываются все виджеты в столбце или строке, место где, лежат виджеты
уменьшается на 1 пиксель по строке или столбцу, и этот пиксель добавляется к одному из столбцов или строк
лежащих в этой же компановке. Как избавится от этого тоже не нашел пока.
17  Qt / Вопросы новичков / Re: Почему когда окно теряет фокус, в QProgressBar меняется цвет полосы процентов? : Март 30, 2020, 10:08
Ну так и меняйте. Хоть системным стилем, хоть стилем самого прогрессбара. Общего решения я там и не нашёл в подобном случае. Там, правда, был стиль в QTextEdit, но принцип тот же самый.
P.S. есть ещё обходной спопоб: описываете 100500 стилей в ресурсах своего приложения, а меню просто даёте пользователю выбрать тот, который ему нравится.
Ясно. будем значит менять стиль.
18  Qt / Вопросы новичков / Re: Почему когда окно теряет фокус, в QProgressBar меняется цвет полосы процентов? : Март 27, 2020, 16:47
А почему это должно быть по-другому? В теме активный/неактивный цвет виджета вполне могут быть (и должны) быть разными.
Да я это понимаю, просто на белом фоне почти белая полоса процентов не очень хорошо выглядит. Хотелось бы ее либо синей сделать,
ну или другим цветом при неактивном окне. Ну походу нужно это наверное менять в стилях самого QProgressBar.
19  Qt / Вопросы новичков / Почему когда окно теряет фокус, в QProgressBar меняется цвет полосы процентов? : Март 27, 2020, 15:43
Здравствуйте, господа форумчане.

Недавно заметил, что у меня в приложении, полоса процентов в QProgressBar меняет
свой цвет, когда окно теряет фокус (стает неактивным). В активном окне данная полоса
процентов синяя, а в неактивном окне - белая. Для приложения использую стиль "Fusion".
Заметил что при стиле "WindowsXP" ее цвет постоянно зеленый (ниже прикреплю рисунок).

Можно ли как-то добиться, чтобы при стиле "Fusion", цвет полосы процентов при активнем
и неактивном окне был синим? Или же нужно менять стиль для QProgressBar?
20  Qt / Вопросы новичков / Re: Почему QTextBrowser не совсем корректно грузит html страницы? : Февраль 06, 2020, 16:48
Почему в БМВ есть климат контроль, а в моем запорожце нету?
Потому что эти функции не реализовали в QTextBrowser.

Цитировать
Может кто знает как нужно настроить QTextBrowser, что-бы работали выше перечисленные функции?
Берете исходники
https://code.woboq.org/qt5/qtbase/src/widgets/widgets/qtextbrowser.cpp.html
и добавляете нужные вам функции.

Благодарю за совет. Буду разбираться.
21  Qt / Вопросы новичков / Почему QTextBrowser не совсем корректно грузит html страницы? : Февраль 06, 2020, 16:14
Здравствуйте, господа форумчане.

Пишу простой браузер для открытия html-справки. Для этого использую класс QTextBrowser.
Html страницы сохранены в web-страницы из Microsoft Office Word с использованием фильтров.

Заметил некие отличия в отображении полученных html страниц браузером QTextBrowser
и браузерами стандартными (Firefox, Google Chrome):
1) При использовании клавиши Ctrl и прокрутки мыши рисунки, в QTextBrowser не масштабируются,
хотя размер шрифта меняется. В стандартных браузерах данное масштабирование работает.
2) Заглавие страниц в QTextBrowser отображается по левому краю, а в стандартных по центру.
3) В QTextBrowser не работают абзацы, тогда как в стандартных абзацы срабатывают.
Походу QTextBrowser не все теги съедает.

main.cpp
Код:
#include "browser_dlg.h"
#include <QApplication>
#include <QStyleFactory>

int main(int argc, char *argv[])
{
QApplication::setStyle(QStyleFactory::create("fusion"));

QApplication app(argc, argv);
Browser_Dlg browser_dlg;
browser_dlg.show();

return app.exec();
}

browser_dlg.h
Код:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "ui_browser.h"
#include <QTreeWidget>

namespace Ui {
class MainWindow;
}

class Browser_Dlg : public QMainWindow
{
Q_OBJECT

public:

QString path_help;

explicit Browser_Dlg(QWidget *parent = 0);
~Browser_Dlg();
Ui::MainWindow *ui;

void create_tree_content(QString path_folder);
QString read_title(QString path);

public slots:
void open_html_file(QTreeWidgetItem *itm);

private:
};

#endif // MAINWINDOW_H

browser_dlg.cpp
Код:
#include "browser_dlg.h"
#include <QStyleFactory>
#include <QFileInfo>
#include <QTextStream>
#include <QDebug>
#include <QDir>

Browser_Dlg::Browser_Dlg(QWidget *parent) :
  QMainWindow(parent),
  ui(new Ui::MainWindow)
{
ui->setupUi(this);

QFont font_tree_header("Times New Roman", 12, QFont::Bold);
QFont font_tree_content("Times New Roman", 10, QFont::Normal);


path_help =  QApplication::applicationDirPath() + "/help";

ui->tree_content->resizeColumnToContents(0);
ui->tree_content->setStyle(QStyleFactory::create("windows"));
ui->tree_content->resizeColumnToContents(0);
ui->tree_content->setTextElideMode(Qt::ElideNone);
ui->tree_content->setWordWrap(true);
ui->tree_content->setFont(font_tree_content);
ui->tree_content->setHeaderLabel("Содержание:");
ui->tree_content->headerItem()->setTextAlignment(0, Qt::AlignCenter);
ui->tree_content->header()->setFont(font_tree_header);
ui->tree_content->header()->setStretchLastSection(true);

connect(ui->tree_content, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(open_html_file(QTreeWidgetItem*)));

create_tree_content(path_help);
}

Browser_Dlg::~Browser_Dlg()
{
delete ui;
}

void Browser_Dlg::create_tree_content(QString path_folder)
{
QDir dir;
dir.setPath(path_folder);

QStringList filters_file;
filters_file << "*.html" << "*.htm";

QFileInfoList files_info_list = dir.entryInfoList(filters_file, QDir::Files);

foreach (QFileInfo child_info, files_info_list)
  {
QTreeWidgetItem *item = new QTreeWidgetItem(ui->tree_content);

qDebug() << "Path: " << child_info.filePath();
item->setText(0, read_title(child_info.filePath()));
item->setData(0, Qt::UserRole, QVariant(child_info.filePath()));

ui->tree_content->addTopLevelItem(item);
  }
}

QString Browser_Dlg::read_title(QString path)
{
QString title = "";
QFile file_read(path);

if(file_read.open(QIODevice::ReadOnly))
  {
  QTextStream file_read_stream(&file_read);
  file_read_stream.setCodec(file_read_stream.codec());

  QString str = file_read_stream.readAll();

  file_read.close();

  QRegExp reg_title("<title>(.*)</title>");
  reg_title.setMinimal(true);

  int pos = 0;

  while((pos = reg_title.indexIn(str, pos)) != -1)
    {
    title = reg_title.cap(1);
    break;
    }
  }

return title;
}

void Browser_Dlg::open_html_file(QTreeWidgetItem *itm)
{
QString path_html = itm->data(0, Qt::UserRole).toString();
if(QFileInfo(path_html).suffix() == "html" || QFileInfo(path_html).suffix() == "htm")
  {
  ui->browser->setSource(QUrl("file:///" + path_html));
  }
}

Может кто знает как нужно настроить QTextBrowser, что-бы работали выше перечисленные функции?
Исходники также прикрепил в архиве. Само приложение и справка с htm файлами лежит по путям:
/Browser/OS_WIN/release/Browser.exe
/Browser/OS_WIN/release/help






22  Qt / Вопросы новичков / Re: Как задать стиль для ячеек первого столбца QTabelWidget? : Март 11, 2019, 17:57

Фрагмент из реального кода:
Код
C++ (Qt)
QHeaderView::section::vertical::first,
QHeaderView::section::vertical::only-one {
 border-top: 1px solid #76797C;
}

Огромное спасибо. Попробую.
23  Qt / Вопросы новичков / Re: Как задать стиль для ячеек первого столбца QTabelWidget? : Январь 25, 2019, 12:09
Код:
setStyleSheet("QTableWidget::item:first-child {margin-top: 2px; margin-left: 1px;}");
Хотя наверное этот код должен был применить margin для ячеек первого столбца
и строки.
24  Qt / Вопросы новичков / Как задать стиль для ячеек первого столбца QTabelWidget? : Январь 25, 2019, 11:58
Добрый день, Господа Форумчане. Недавно появилась необходимость задать margin
только для ячеек первого столбца QTableWidget. Поискав в инете, нашел инфу о
селекторе first-child.

Но следующий стиль не сработал так как бы хотелось.
Код:
setStyleSheet("QTableWidget::item:first-child {margin-top: 2px; margin-left: 1px;}");
В результате, данный стиль применился для всех ячеек таблицы.

Может, кто подскажет? Как в QTableWidget задать стиль только для ячеек первого столбца?
25  Qt / Вопросы новичков / Как задать стиль для первого столбца QTabelWidget? : Январь 25, 2019, 11:50
Добрый день, Господа форумчане. Недавно появилась необходимость задать margin только для
первого столбца QTableWidget. Поискав в инете, нашел инфу о селекторе first-child.
Но следующий стиль не сработал так как бы хотелось.
Код:
setStyleSheet("QTableWidget::item:first-child {margin-top: 2px; margin-left: 1px;}");
В результате, данный
26  Qt / Вопросы новичков / Re: Как отобразить процесс сохранения QPixmap изображения в файл? : Август 21, 2018, 14:38
deMax, благодарю за совет. Так и сделаю.
27  Qt / Вопросы новичков / Re: Как отобразить процесс сохранения QPixmap изображения в файл? : Август 21, 2018, 13:01
Если изображение сохранять на флешку с максимальным качеством, то оно сохраняется довольно таки медленно.
Если же как я указал в примере с малым качеством(40), то сохранит моментально.

Я просто планировал сохранять в наилучшем качестве. Спасибо всем за ответ. Учту все подсказки.
28  Qt / Вопросы новичков / Re: Как отобразить процесс сохранения QPixmap изображения в файл? : Август 20, 2018, 16:53
Да я уже тоже над этим задумываюсь.  Смеющийся
29  Qt / Вопросы новичков / Как отобразить процесс сохранения QPixmap изображения в файл? : Август 20, 2018, 16:41
Здравствуйте, господа форумчане.

Пишу приложение ScreenShot экрана. В ОС Windows это выглядит так:
Код:
void screenShot()
{
QString image_str = "screenshot.png";
QWidget *desktop_w = QApplication::desktop();
WId w = desktop_w->winId();

QScreen *screen = QApplication::primaryScreen();
QPixmap pixmap = screen->grabWindow(w, 0, 0, desktop_w->width(), desktop_w->height());

if(image_str .isNull())
    return;

if(pixmap.save(image_str , "PNG", 40) == false)
    {
        QFile(image_str ).remove();
    }
}
Появилась необходимость отобразить сам процесс сохранения изображения в виде QProgressBar-а
с бегущими процентами. Но пока не могу понять как это реализовать. Разве что написать свой класс
c QPixmap-а с измененным методом save.
Может кто уже реализовывал подобное? Буду рад стоящим идеям.
30  Qt / Вопросы новичков / Как изменить время до появления подсказки QToolTip? : Август 20, 2018, 16:33
Здравствуйте, господа форумчане.

Заметил, что в qt приложении на ОС QNX6 время до появления подсказки QToolTip значительно больше,
чем в том же приложении на ОС Windows. Может кто подскажет как изменить это время?
Страниц: 1 [2] 3 4 ... 21

Страница сгенерирована за 0.084 секунд. Запросов: 23.