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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 109 110 [111] 112 113 ... 122
1651  Qt / Вопросы новичков / Проблемы с компиляцией гуи плагина : Декабрь 08, 2012, 07:14
Здравствуйте!
Скиньте пожалуйста какой нибудь мини пример проекта с гуи плагином,
например кнопка, нажатие которой показывает сообщение, или label с определенным текстом

Спасибо! Улыбающийся
1652  Qt / Кладовая готовых решений / Re: Выбор цвета с помощью кнопки и контекстного меню : Ноябрь 14, 2012, 23:27
Делается за полдня с отладкой. , с отдачей цвета в Role. Ну и расположение итемов выставить в IconView Улыбающийся
не, ходил таким путем - там глюки были, преодолеть не смог.
так что там не "ComboBox Обычный, c listView".

А слабо исходный код этого монстра выложить? Подмигивающий Веселый
тынц

Просил код, а дали ссылку на целый проект Веселый (в котором не хочется разбираться и искать злополучный тот код Улыбающийся)
В институте на 3 курсе, делал похожий проект Улыбающийся
1653  Qt / Кладовая готовых решений / Re: Выбор цвета с помощью кнопки и контекстного меню : Ноябрь 13, 2012, 20:02
А так слабо? Улыбающийся



А слабо исходный код этого монстра выложить? Подмигивающий Веселый
1654  Qt / Кладовая готовых решений / Re: Выбор цвета с помощью кнопки и контекстного меню : Ноябрь 13, 2012, 19:36
Переписал класс с нуля, выкладываю в первом сообщении Улыбающийся
Жду ругательств и советов Подмигивающий
1655  Qt / Кладовая готовых решений / Re: Выбор цвета с помощью кнопки и контекстного меню : Ноябрь 13, 2012, 18:04
Изначально этот класс не был предназначен только для стандартных цветов, я конечно мог создать что то типа
Код:
QMenu *menuColor = new QMenu();
QPixmap pixmap(10, 10);

for(int i = Qt::black; i < Qt::darkYellow; i++)
{
     QAction *actionColor = new QAction(this);
     pixmap.fill(i);
     actionColor->setIcon(pixmap);
    
     menu->addAction(actionColor);
}
И ура обошлись несколькими строчками! Вот только текста не будет Улыбающийся
но и тут без проблем: создаем массив (или контейнер std и qt в помощь) и в него вгоняем текст action'ов

А если еще помучиться, то можно код по другому оформить: создать структуру с полями текст и цвет, или просто 2 массива/контейнера (цвет и текст), в них вгоняем нужные данные, а при их обработке создаем объект QAction, добавляем его в QMenu, и обязательно не забывать цвет в data QAction добавлять и коннектить к чему то, а потом не менее хитрым способом определять объект вызвавший сигнал и доставать из его data цвет

Я не стал извращаться и выбрал самый простой способ, который хоть и выглядит громоздким из-за реализации "в лоб", но более быстродейственен, без всяких наработок Улыбающийся Да и по коду не сложно понять что делает он Улыбающийся

PS. В то время нужно было сделать что то подобное по функционалу и быстро (главное чтобы работало Улыбающийся)
PPS. Кому надо - доработает Улыбающийся
1656  Qt / Кладовая готовых решений / Выбор цвета с помощью кнопки и контекстного меню : Ноябрь 13, 2012, 17:28
Здравствуйте!
Хочу поделиться с собственной наработкой Улыбающийся
Кнопка - кнопкою, при нажатии который справо появляется контексное меню с выбором стандартных цветов Qt, и возможность вызвать диалог выбора цвета (для привередливых Улыбающийся)

Не думаю что пример тут нужен, класс простой, просто коннектите сигнал selectedColor(QColor), к нужному слоту или (о мой бог!) сигналу и радуетесь Улыбающийся
Для новичков 1 уровня познания приведу пример:
Код:
UPushButtonSelectColor *pButtonSelectColor = new UPushButtonSelectColor("Get color!");

connect(UPushButtonSelectColor, SIGNAL(selectedColor(QColor)),
       [ваш_объект], [слот_или_сигнал_вашего_объекта]);

Ниже реализация, для тех кому лень качать, или не доверяют источнику (а вдруг вирусня!) Улыбающийся
*.h файл:
Код:
#ifndef UPUSHBUTTONSELECTCOLOR_H
#define UPUSHBUTTONSELECTCOLOR_H

#include <QPushButton>
#include <QMenu>
#include <QAction>
#include <QColorDialog>

class UPushButtonSelectColor: public QPushButton
{
    Q_OBJECT

public:
    UPushButtonSelectColor(QWidget *parent = 0);
    UPushButtonSelectColor(const QString &text,
                           QWidget *parent = 0);
    UPushButtonSelectColor(const QIcon &icon,
                           const QString &text,
                           QWidget *parent = 0);
    QMenu * menuColors();
    QList <QAction *> actionsColors();

private:
    void init();
    void createActionsSelectColor();
    void setLanguage();

private:
    QMenu *popurMenuTextColor;
    QAction *actionTextColor_White;
    QAction *actionTextColor_Black;
    QAction *actionTextColor_Red;
    QAction *actionTextColor_DarkRed;
    QAction *actionTextColor_Green;
    QAction *actionTextColor_DarkGreen;
    QAction *actionTextColor_Blue;
    QAction *actionTextColor_DarkBlue;
    QAction *actionTextColor_Cyan;
    QAction *actionTextColor_DarkCyan;
    QAction *actionTextColor_Magenta;
    QAction *actionTextColor_DarkMagenta;
    QAction *actionTextColor_Yellow;
    QAction *actionTextColor_DarkYellow;
    QAction *actionTextColor_Gray;
    QAction *actionTextColor_DarkGray;
    QAction *actionTextColor_LightGray;
    QAction *actionTextColor_Other;

    QColor color;

public slots:    
    void black();
    void white();
    void gray();
    void red();
    void green();
    void cyan();
    void blue();
    void magenta();
    void yellow();

    void darkGray();
    void darkRed();
    void darkGreen();
    void darkCyan();
    void darkBlue();
    void darkMagenta();
    void darkYellow();

    void lightGray();

    void colorDialog();

    void setColor(QColor c);

private slots:
    void showMenu();

signals:
    void selectedColor(QColor);
};

#endif // UPUSHBUTTONSELECTCOLOR_H

*.cpp файл:
Код:
#include "UPushButtonSelectColor.h"

UPushButtonSelectColor::UPushButtonSelectColor(QWidget *parent):
    QPushButton(parent)
{
    init();
}
UPushButtonSelectColor::UPushButtonSelectColor(const QString &text,
                                               QWidget *parent):
    QPushButton(text, parent)
{
    init();
}
UPushButtonSelectColor::UPushButtonSelectColor(const QIcon &icon,
                                               const QString &text,
                                               QWidget *parent):
    QPushButton(icon, text, parent)
{
    init();
}

QMenu * UPushButtonSelectColor::menuColors()
{
    return popurMenuTextColor;
}
QList <QAction *> UPushButtonSelectColor::actionsColors()
{
    return popurMenuTextColor->actions();
}

// PRIVATE
void UPushButtonSelectColor::init()
{
    createActionsSelectColor();
setLanguage();

    connect(this, SIGNAL(clicked()),
            this, SLOT(showMenu()));
}
void UPushButtonSelectColor::createActionsSelectColor()
{
    actionTextColor_White       = new QAction(this);
    actionTextColor_Black       = new QAction(this);
    actionTextColor_Red         = new QAction(this);
    actionTextColor_DarkRed     = new QAction(this);
    actionTextColor_Green       = new QAction(this);
    actionTextColor_DarkGreen   = new QAction(this);
    actionTextColor_Blue        = new QAction(this);
    actionTextColor_DarkBlue    = new QAction(this);
    actionTextColor_Cyan        = new QAction(this);
    actionTextColor_DarkCyan    = new QAction(this);
    actionTextColor_Magenta     = new QAction(this);
    actionTextColor_DarkMagenta = new QAction(this);
    actionTextColor_Yellow      = new QAction(this);
    actionTextColor_DarkYellow  = new QAction(this);
    actionTextColor_Gray        = new QAction(this);
    actionTextColor_DarkGray    = new QAction(this);
    actionTextColor_LightGray   = new QAction(this);
    actionTextColor_Other       = new QAction(this);

    QPixmap pixmap(10, 10);

    pixmap.fill(Qt::white);
    actionTextColor_White->setIcon(pixmap);

    pixmap.fill(Qt::black);
    actionTextColor_Black->setIcon(pixmap);

    pixmap.fill(Qt::red);
    actionTextColor_Red->setIcon(pixmap);

    pixmap.fill(Qt::darkRed);
    actionTextColor_DarkRed->setIcon(pixmap);

    pixmap.fill(Qt::green);
    actionTextColor_Green->setIcon(pixmap);

    pixmap.fill(Qt::darkGreen);
    actionTextColor_DarkGreen->setIcon(pixmap);

    pixmap.fill(Qt::blue);
    actionTextColor_Blue->setIcon(pixmap);

    pixmap.fill(Qt::darkBlue);
    actionTextColor_DarkBlue->setIcon(pixmap);

    pixmap.fill(Qt::cyan);
    actionTextColor_Cyan->setIcon(pixmap);

    pixmap.fill(Qt::darkCyan);
    actionTextColor_DarkCyan->setIcon(pixmap);

    pixmap.fill(Qt::magenta);
    actionTextColor_Magenta->setIcon(pixmap);

    pixmap.fill(Qt::darkMagenta);
    actionTextColor_DarkMagenta->setIcon(pixmap);

    pixmap.fill(Qt::yellow);
    actionTextColor_Yellow->setIcon(pixmap);

    pixmap.fill(Qt::darkYellow);
    actionTextColor_DarkYellow->setIcon(pixmap);

    pixmap.fill(Qt::gray);
    actionTextColor_Gray->setIcon(pixmap);

    pixmap.fill(Qt::darkGray);
    actionTextColor_DarkGray->setIcon(pixmap);

    pixmap.fill(Qt::lightGray);
    actionTextColor_LightGray->setIcon(pixmap);

    connect(actionTextColor_White, SIGNAL(triggered()),
            this, SLOT(white()));
    connect(actionTextColor_Black, SIGNAL(triggered()),
            this, SLOT(black()));
    connect(actionTextColor_Red, SIGNAL(triggered()),
            this, SLOT(red()));
    connect(actionTextColor_DarkRed, SIGNAL(triggered()),
            this, SLOT(darkRed()));
    connect(actionTextColor_Green, SIGNAL(triggered()),
            this, SLOT(green()));
    connect(actionTextColor_DarkGreen, SIGNAL(triggered()),
            this, SLOT(darkGreen()));
    connect(actionTextColor_Blue, SIGNAL(triggered()),
            this, SLOT(blue()));
    connect(actionTextColor_DarkBlue, SIGNAL(triggered()),
            this, SLOT(darkBlue()));
    connect(actionTextColor_Cyan, SIGNAL(triggered()),
            this, SLOT(cyan()));
    connect(actionTextColor_DarkCyan, SIGNAL(triggered()),
            this, SLOT(darkCyan()));
    connect(actionTextColor_Magenta, SIGNAL(triggered()),
            this, SLOT(magenta()));
    connect(actionTextColor_DarkMagenta, SIGNAL(triggered()),
            this, SLOT(darkMagenta()));
    connect(actionTextColor_Yellow, SIGNAL(triggered()),
            this, SLOT(yellow()));
    connect(actionTextColor_DarkYellow, SIGNAL(triggered()),
            this, SLOT(darkYellow()));
    connect(actionTextColor_Gray, SIGNAL(triggered()),
            this, SLOT(gray()));
    connect(actionTextColor_DarkGray, SIGNAL(triggered()),
            this, SLOT(darkGray()));
    connect(actionTextColor_LightGray, SIGNAL(triggered()),
            this, SLOT(lightGray()));
    connect(actionTextColor_Other, SIGNAL(triggered()),
            this, SLOT(colorDialog()));

    popurMenuTextColor = new QMenu();
    popurMenuTextColor->addAction(actionTextColor_White);
    popurMenuTextColor->addAction(actionTextColor_Black);
    popurMenuTextColor->addAction(actionTextColor_Red);
    popurMenuTextColor->addAction(actionTextColor_DarkRed);
    popurMenuTextColor->addAction(actionTextColor_Green);
    popurMenuTextColor->addAction(actionTextColor_DarkGreen);
    popurMenuTextColor->addAction(actionTextColor_Blue);
    popurMenuTextColor->addAction(actionTextColor_DarkBlue);
    popurMenuTextColor->addAction(actionTextColor_Cyan);
    popurMenuTextColor->addAction(actionTextColor_DarkCyan);
    popurMenuTextColor->addAction(actionTextColor_Magenta);
    popurMenuTextColor->addAction(actionTextColor_DarkMagenta);
    popurMenuTextColor->addAction(actionTextColor_Yellow);
    popurMenuTextColor->addAction(actionTextColor_DarkYellow);
    popurMenuTextColor->addAction(actionTextColor_Gray);
    popurMenuTextColor->addAction(actionTextColor_DarkGray);
    popurMenuTextColor->addAction(actionTextColor_LightGray);
    popurMenuTextColor->addAction(actionTextColor_Other);
}
void UPushButtonSelectColor::setLanguage()
{
    actionTextColor_White->setText("White"));
    actionTextColor_Black->setText("Black");
    actionTextColor_Red->setText("Red");
    actionTextColor_DarkRed->setText("Dark red");
    actionTextColor_Green->setText("Green");
    actionTextColor_DarkGreen->setText("Dark green");
    actionTextColor_Blue->setText("Blue");
    actionTextColor_DarkBlue->setText("Dark blue");
    actionTextColor_Cyan->setText("Cyan");
    actionTextColor_DarkCyan->setText("Dark cyan");
    actionTextColor_Magenta->setText("Magenta");
    actionTextColor_DarkMagenta->setText("Dark magenta");
    actionTextColor_Yellow->setText("Yellow");
    actionTextColor_DarkYellow->setText("Dark yellow");
    actionTextColor_Gray->setText("Gray");
    actionTextColor_DarkGray->setText("Dark gray");
    actionTextColor_LightGray->setText("Light gray");
    actionTextColor_Other->setText("Other");
}

// PUBLIC SLOTS
void UPushButtonSelectColor::black()
{
    color = Qt::black;
    emit selectedColor(color);
}
void UPushButtonSelectColor::white()
{
    color = Qt::white;
    emit selectedColor(color);
}
void UPushButtonSelectColor::gray()
{
    color = Qt::gray;
    emit selectedColor(color);
}
void UPushButtonSelectColor::red()
{
    color = Qt::red;
    emit selectedColor(color);
}
void UPushButtonSelectColor::green()
{
    color = Qt::green;
    emit selectedColor(color);
}
void UPushButtonSelectColor::cyan()
{
    color = Qt::cyan;
    emit selectedColor(color);
}
void UPushButtonSelectColor::blue()
{
    color = Qt::blue;
    emit selectedColor(color);
}
void UPushButtonSelectColor::magenta()
{
    color = Qt::magenta;
    emit selectedColor(color);
}
void UPushButtonSelectColor::yellow()
{
    color = Qt::yellow;
    emit selectedColor(color);
}
void UPushButtonSelectColor::darkGray()
{
    color = Qt::darkGray;
    emit selectedColor(color);
}
void UPushButtonSelectColor::darkRed()
{
    color = Qt::darkRed;
    emit selectedColor(color);
}
void UPushButtonSelectColor::darkGreen()
{
    color = Qt::darkGreen;
    emit selectedColor(color);
}
void UPushButtonSelectColor::darkCyan()
{
    color = Qt::darkCyan;
    emit selectedColor(color);
}
void UPushButtonSelectColor::darkBlue()
{
    color = Qt::darkBlue;
    emit selectedColor(color);
}
void UPushButtonSelectColor::darkMagenta()
{
    color = Qt::darkMagenta;
    emit selectedColor(color);
}
void UPushButtonSelectColor::darkYellow()
{
    color = Qt::darkYellow;
    emit selectedColor(color);
}
void UPushButtonSelectColor::lightGray()
{
    color = Qt::lightGray;
    emit selectedColor(color);
}
void UPushButtonSelectColor::colorDialog()
{
    QColor col = QColorDialog::getColor(color);
    if(!col.isValid())
        return;    
    color = col;

    emit selectedColor(color);
}
void UPushButtonSelectColor::setColor(QColor c)
{
    color = c;
}

// PRIVATE SLOTS
void UPushButtonSelectColor::showMenu()
{
    popurMenuTextColor->exec(mapToGlobal(QPoint(frameSize().width(), 0)));
}

Код выдрал из проекта, так что не пинать и не жаловаться, если увидели, что то странное, что не должно быть Веселый


ВНИМАНИЕ!
В связи с троллингов (Веселый) переписал с 0 класс, тот же функционал, только нет диалога выбора цвета Улыбающийся
h
Код:
#ifndef UPUSHBUTTONSELECTCOLOR_V2_H
#define UPUSHBUTTONSELECTCOLOR_V2_H

#include <QWidget>
#include <QPushButton>
#include <QAction>
#include <QMenu>
#include <QSignalMapper>
#include <QMap>
#include <QMapIterator>
#include <QPainter>
#include <QDebug>

class UPushButtonSelectColor_v2: public QPushButton
{
    Q_OBJECT
    
public:
    UPushButtonSelectColor_v2(QWidget *parent = 0);

private:
    QMenu *menu;
    QSignalMapper *signalMapper;

private slots:
    void showMenu();
    void clickedAction(int id);

signals:
    void selectedColor(QColor);
};


class foo: public QWidget
{
    Q_OBJECT

private:
    QColor color;

public slots:
    void setColor(QColor _color)
    {
        color = _color;
        repaint();
    }

protected:
    void paintEvent(QPaintEvent *)
    {
        QPainter painter(this);
        painter.setBrush(color);
        painter.setPen(color);
        painter.drawEllipse(0, 0, width(), height());
    }
};

#endif // UPUSHBUTTONSELECTCOLOR_V2_H

cpp
Код:
#include "UPushButtonSelectColor_v2.h"

UPushButtonSelectColor_v2::UPushButtonSelectColor_v2(QWidget *parent):
    QPushButton(parent)
{
    connect(this, SIGNAL(clicked()),
             this, SLOT(showMenu()));

    menu = new QMenu();

    QMap <QString, QColor> map;
    map.insert("White",  Qt::white);
    map.insert("Black",  Qt::black);
    map.insert("Red",    Qt::red);
    map.insert("Green",  Qt::green);
    map.insert("Yellow", Qt::yellow);
    map.insert("Blue",   QColor(0, 0, 255));

    signalMapper = new QSignalMapper(this);

    QList <QAction *> actions;

    int count = 0;
    QMapIterator <QString, QColor> i(map);
    while(i.hasNext())
    {
        i.next();

        QColor color = i.value();

        QPixmap pixmap(10, 10);
        pixmap.fill(color);

        QAction *action = new QAction(pixmap, i.key(), this);
        action->setData(color);
        actions.append(action);

        connect(action, SIGNAL(triggered()),
                signalMapper, SLOT(map()));

        signalMapper->setMapping(action, count);
        count++;
    }

    menu->addActions(actions);

    connect(signalMapper, SIGNAL(mapped(int)),
            this, SLOT(clickedAction(int)));
}

// PRIVATE SLOTS
void UPushButtonSelectColor_v2::showMenu()
{
    menu->exec(mapToGlobal(QPoint(width(), 0)));
}
void UPushButtonSelectColor_v2::clickedAction(int id)
{
    emit selectedColor(menu->actions().at(id)->data().value <QColor> ());
}

main
Код:
#include <QApplication>
#include "UPushButtonSelectColor_v2.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    UPushButtonSelectColor_v2 *p = new UPushButtonSelectColor_v2();
    p->show();
    p->setText("Click Me!");

    foo *f = new foo();
    f->setColor(Qt::green);
    f->show();

    QObject::connect(p, SIGNAL(selectedColor(QColor)),
                     f, SLOT(setColor(QColor)));

    return a.exec();
}
1657  Qt / Пользовательский интерфейс (GUI) / Re: Правильная маскировка кнопок сложной формы. : Ноябрь 11, 2012, 20:20
Я как то давно писал игрушку судоку (незакончил правда, надоело Улыбающийся), вот в ней как раз поле рисуется через paintEvent, и присутствует подсчет куда пользователь "тыкнул" мышкой в mouseReleaseEvent, и соответствующее на это действие, маштабирование поля игры тоже идет в рассчет
Может вам, Hrundel, это пригодится Улыбающийся
1658  Qt / Пользовательский интерфейс (GUI) / Re: QPainter тормозит при сглаживании! : Ноябрь 09, 2012, 21:43
Уберете сглаживание будет меньше тормозить Улыбающийся
1659  Qt / Общие вопросы / Re: Объясните как программно для ассоциированных файлов установить иконку (Windows) : Ноябрь 08, 2012, 17:38
Не ставить винду из сборок и обновлять рабочий стол почаще Веселый
Веселый
1660  Qt / Общие вопросы / Re: Объясните как программно для ассоциированных файлов установить иконку (Windows) : Ноябрь 08, 2012, 02:29
Дайте хоть пинка в нужном направлении Улыбающийся этоже как искать микроба в помойной кучи Веселый
Посмотри как это делают популярные опен-сорсные программы такие как VLC, 7-zip, LibreOffice и т.д.
Иконки у меня показываются, вот только на рабочем столе, показывается старая иконка, которая раньше было: после того как выбрал другую, на раб столе иконка не поменялась
Но если зайти в папку рабочего стола, то в ней показывается новая, и я спрашивал как с этим непотребством бороться Улыбающийся
1661  Qt / Общие вопросы / Re: Объясните как программно для ассоциированных файлов установить иконку (Windows) : Ноябрь 08, 2012, 00:07
Дайте хоть пинка в нужном направлении Улыбающийся этоже как искать микроба в помойной кучи Веселый
1662  Qt / Общие вопросы / Re: Объясните как программно для ассоциированных файлов установить иконку (Windows) : Ноябрь 07, 2012, 22:40
Пробовал, после этого отображение иконок стало правильным, от части...
на рабочем столе иконка так и показывается старая
1 создаю папку на раб столе, копирую свой файл в эту папку - иконка старая
2 копирую этот файл на диск D - иконка новая
3 открываю папку рабочего стола - иконка новая

Может где то что то на компе надо почистить, чтобы на раб столе правильно показывалось?
И почему если я открываю папки с раб.стола, в которых мой формат, то в них иконка старая, если я открою эти папки, но начну с Мой компьютер -> D: -> Document... -> User -> Desktop, то файлы имеют правильное отображение
1663  Qt / Общие вопросы / Re: Объясните как программно для ассоциированных файлов установить иконку (Windows) : Ноябрь 07, 2012, 02:56
Изменил расширения файла, использованного в программе, в итоге, на рабочем столе для нового расширения все равно показывается старая иконка, но зато иконка теперь видна в корне диска D, в отличии от предыдущего расширения, странно все это...
1664  Qt / Общие вопросы / Re: Объясните как программно для ассоциированных файлов установить иконку (Windows) : Ноябрь 07, 2012, 02:32
Получилось показать иконку, но опять начались странности

Код файла ресурсов rc
Код:
// иконка ехе
IDI_ICON1  ICON    DISCARDABLE     "images/icon.ico"

// дополнительная иконка, используемая в отображении файлов программы
1          ICON    DISCARDABLE     "images/iconFileNote.ico"

Код установления иконки:
Код:
    QSettings hkcr("HKEY_CLASSES_ROOT", QSettings::NativeFormat);
    
    QString extension = "FileNote";
    QString executablePath =  QDir::toNativeSeparators(qApp->applicationFilePath());
    QString executableName = QFileInfo(executablePath).fileName();
    QString nameExe = QFileInfo(executableName).baseName();  

    hkcr.setValue(QString("/.%1/.").arg(extension),
                  QString("%1.%2")
                  .arg(nameExe)
                  .arg(extension));
    hkcr.setValue(QString("/%1.%2/DefaultIcon/.")
                  .arg(nameExe)
                  .arg(extension),
                  '"' + executablePath + '"' + "," + "1);

Результат на скриншотах Улыбающийся

Иконка на рабочем столе вообще была до новой (в новой есть прозрачность), которая видна везде кроме раб стола, не понимаю, почему старая отображается, ведь и она была взята с ехе, и ее там нет, я проверял
Да и иконка, если смотреть через диалоги, видна нормально (видна новая)
В общем, единственный вопрос, приходящий в голову: что за нах??! какого??
1665  Qt / Общие вопросы / Объясните как программно для ассоциированных файлов установить иконку (Windows) : Ноябрь 05, 2012, 19:52
Здравствуйте, уважаемые форумчане! Улыбающийся
Есть приложение, и есть тип файлов, которое используется приложением, такой тип не является распространенным
Связываю такой тип в HKEY_CLASSES_ROOT, указывая тип файла, пусть будет XPEH (уважаемые форумчане, это сочетание цифр было напечатано латиницей! Веселый), тогда получается путь в реестре будет HKEY_CLASSES_ROOT/.XPEH, осталось связать этот тип с чем то
Связываю с действием открыть и указываю путь к программе, которая и будет запускаться, когда файл типа .XPEH будет открываться и укажем каким параметром нашей программы будет передаваться абсолютный путь к открываемому файлу HKEY_CLASSES_ROOT/.XPEH/shell/open/command/"С:\prog.exe" "%1",
Теперь настройка иконки, она будет лежать в ехе, с которым и ассоциируется файл:
HKEY_CLASSES_ROOT/.XPEH/DefaultIcon/С:\prog.exe, 2

Но иконки не меняются и не появляются!
Когда я мучался, и перезаписывал и создавал разделы в реестре, удавалось (не помню как, реестр то еще "удовольствие", особенно когда ради чистоты проверок, нужно убирать все что добавлял) показать иконки на файлах своего типа, но косячно: на рабочем столе своя иконка показывается, а в корне диска почему то нет, при просмотре файлов через диалоги открытия/сохранения не показывается, и тому подобное

Гугление не помолго, нашел пару сайтов, в которых кратко описана структура реестра виндовс, несколько сайтов делфи, в которых показывалось как с действием Открыть связать программу, и кучу сайтов, в которых популярным языком объясняется как с помощью одной мышки ассоциацию сделать (правый клик->открыть с помощью, и подобное)

Объясните/покажите, как в реестре настроить показ иконки файла Улыбающийся
Страниц: 1 ... 109 110 [111] 112 113 ... 122

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