Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2014, 15:18   #131
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Получаем:


Берёмся за угол формы и уменьшаем до минимального размера:
8Observer8 вне форума Ответить с цитированием
Старый 22.10.2014, 15:50   #132
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
Убрал в профайле CONFIG += console c++ 11
Да, точно! Только надо было console убрать. c++11 - пишется слитно. c++11 тут тоже ни к чему. Всю строку надо было убрать

Цитата:
Добавил CONFIG += qt \ warn_on \ - работает без консоли на заднем плане!
Без этого тоже будет работать

Цитата:
Кстати, мой qwindows проект не принимает, тот, что Вы скидывали принимается на все 100! В чем загвоздка-то?
Не знаю. Может вы библиотеки из разных сборок взяли. Из старой сборки или из моей и из своей. Может некоторые библиотеки взяли из отсюда: C:\Qt\Qt5.3.2\Tools\QtCreator\bin А надо было все брать отсюда: C:\Qt\Qt5.3.2\5.3\mingw482_32\bin Используйте мой файл

Цитата:
Попытался заполнить поля вывода в ShowLineEdit символом '0' с помощью fill(), но не вышло..
Внимательно изучите пример:

Output:
Цитата:
h = 09
h = 22
Press <RETURN> to close this window...
main.cpp
Код:
#include <iostream>
#include <QString>

QString fill( int a );

int main()
{
    int h;
    QString hStr;

    h = 9;
    hStr = fill( h );
    std::cout << "h = " << hStr.toStdString() << std::endl;

    h = 22;
    hStr = fill( h );
    std::cout << "h = " << hStr.toStdString() << std::endl;

    return 0;
}

QString fill( int a )
{
    QString str;

    if ( a / 10 == 0 ) {
        str = "0";
    }

    return str + QString::number( a );
}
8Observer8 вне форума Ответить с цитированием
Старый 22.10.2014, 16:51   #133
igoreshka3333
Форумчанин
 
Аватар для igoreshka3333
 
Регистрация: 26.09.2014
Сообщений: 176
По умолчанию

Что то наподобие этого должно быть?
Код:
ui->ShowHourLineEdit->setText( QString::number(fill(t.hour())));
А это запихнуть в метод класса Dialog:
Код:
QString fill( int a )
    {
        QString str;

        if ( a / 10 == 0 ) {
            str = "0";
        }

        return str + QString::number( a );
    }
igoreshka3333 вне форума Ответить с цитированием
Старый 22.10.2014, 17:54   #134
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Код:
ui->ShowHourLineEdit->setText( QString::number(fill(t.hour())));
Тут ошибка. QString::number() - принимает число. fill() - возвращает QString

setText() - принимает QString и это здорово, так как fill() возращает QString

Сами догадаетесь? Если да, то выгладывайте архив с исправленным кодом
8Observer8 вне форума Ответить с цитированием
Старый 22.10.2014, 23:54   #135
igoreshka3333
Форумчанин
 
Аватар для igoreshka3333
 
Регистрация: 26.09.2014
Сообщений: 176
По умолчанию

Почему только так?
Код:
int h = t.hour();
ui->ShowHourLineEdit->setText(fill(h));
А не так:
Код:
ui->ShowHourLineEdit->setText(fill(t.hour));
?
И еще выровнять не получается в LineEdit. (пробовал пробелом - не помогло конечно).
В документации надо долго копатся - еще полажу. Гугл результата не дал
Вот приложение
Вот исходники

Последний раз редактировалось igoreshka3333; 23.10.2014 в 00:40.
igoreshka3333 вне форума Ответить с цитированием
Старый 23.10.2014, 01:02   #136
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
Сообщение от igoreshka3333 Посмотреть сообщение
Почему только так?
А не так:
Код:
ui->ShowHourLineEdit->setText(fill(t.hour));
?
Так тоже можно

Цитата:
Сообщение от igoreshka3333 Посмотреть сообщение
И еще выровнять не получается в LineEdit. (пробовал пробелом - не помогло конечно).
А что именно не получается? Что хотите? А как на рисунках не подходит?

Цитата:
Сообщение от igoreshka3333 Посмотреть сообщение
В документации надо долго копатся - еще полажу. Гугл результата не дал
У Шлее в книге есть, вроде, глава посвящённую работе с дизайнером: https://yadi.sk/d/c4d5NlslcDmUG

Цитата:
Сообщение от igoreshka3333 Посмотреть сообщение
Завтра посмотрю
8Observer8 вне форума Ответить с цитированием
Старый 23.10.2014, 15:01   #137
igoreshka3333
Форумчанин
 
Аватар для igoreshka3333
 
Регистрация: 26.09.2014
Сообщений: 176
По умолчанию

Цитата:
Так тоже можно
Действительно - то я начудил что-то
Цитата:
А что именно не получается?
С группированием я разобрался - не получилось по центру вывести время!
igoreshka3333 вне форума Ответить с цитированием
Старый 24.10.2014, 11:12   #138
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Dero11, создавайте свою тему. Мы тут таймер делаем. Я лично не знаю, как вам помочь

igoreshka3333, вчера у меня неожиданно утром интернет вырубился на сутки

Почему вы написали "введите часы" с маленькой буквы? Не надо так

Цитата:
С группированием я разобрался - не получилось по центру вывести время!
Выравнивать пробелами... Так только делают те, кто с Word'ом плохо знаком. Для того, чтобы выровнять заголовок по центру они делают пробелы слева. А вы же программист и должны понимать, что объект "ShowHourLineEdit" класса QLineEdit имеет кучу свойств (переменных настроек). Все эти свойства доступны через Дизайнер. Выделите все LineEdit и на панели справа в Filter начните вводить: ali Вам выведется свойство: alignment, что означает "выравнивание". Поумолчанию там стоит "AlignLeft". Поставьте "AlignHCenter"

Упражнение. Сделайте вывод по примеру электронных часов. Для этого перетащите на форму элемент: LCD Number. Пример возьмёте отсюда: в правом верхнем углу Qt Cretor'а нажмите кнопку "Welcome" -> нажмите кнопку "Examples" -> в поле "Search in Examples" наберите: clock -> выберите пример "Digital Clock"

Пришлите: скриншот, приложение и исходники
8Observer8 вне форума Ответить с цитированием
Старый 24.10.2014, 20:56   #139
igoreshka3333
Форумчанин
 
Аватар для igoreshka3333
 
Регистрация: 26.09.2014
Сообщений: 176
По умолчанию

Цитата:
igoreshka3333, вчера у меня неожиданно утром интернет вырубился на сутки
Я уж было подумал Вы позабыли обо мне))
Вот:
Приложение
Исходники

___________________________
Изображения
Тип файла: jpg Безымянный.jpg (38.2 Кб, 140 просмотров)

Последний раз редактировалось igoreshka3333; 24.10.2014 в 22:43.
igoreshka3333 вне форума Ответить с цитированием
Старый 25.10.2014, 09:00   #140
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Название нужно исправить "Dialog" -> "Таймер". У формы есть свойство "windowTitle"

У вас функция set_Time() выбрасывает исключение, а вы его не отлавливайте. Я запустил приложение и сразу же нажал "СТАРТ". Приложение завершилось крэшем из-за исключения

1) Сделайте, чтобы у вас при запуске приложения выводились нули
2) Если числа не в диапазоне, то пусть выдаётся сообщение. Перехватывайте исключение и выводите его текст ( e.what() ) в объект класса QMessageBox:

Код:
#include <QApplication>
#include <QMessageBox>
#include <QString>
#include <vector>
#include <stdexcept>

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

    std::vector<int> arr;
    arr.resize( 7 );

    try {
        arr.at( 937438 ) = 343;
    } catch( const std::out_of_range &e ) {
        QString message( e.what() );
        QMessageBox::critical( 0, "Ошибка", "Выход за диапазон: " + message );
        return 1;
    }

    return app.exec();
}
Дайте ссылку на исправленные исходники

Пока приложение не нужно кидать. Мы потом сделаем так, чтобы оно не весило так много. Сейчас оно у вас весит, в распакованном виде, 44 МБайт. Мы сделаем, чтобы оно весило 5 МБайт. Для этого придётся сделать ещё одну сборку всей библиотеки Qt. Эта сборка называется статическая. Нужно чтобы на компьютере было две сборки Qt, чтобы можно было переключаться между ними. Одна у вас уже есть - это динамическая. Статическая нужна, чтобы собирать приложения статически в один исполняемый файл весом с минимальным весом. Для простого приложения exe будет весить после статической сборки: 14 МБайт. Но его можно сжать с помощью программы upx до 5 МБайт

P.S. Я раньше на замечал, что с Яндек.Диска можно скачивать не весь архив, а только один exe. Для этого нужно нажать "Посмотреть", чтобы зайти в архив, а потом скачать отдельно exe

Запустите у себя примерчик (управлять стрелками) Это я часть примера из этой книги переписал на Qt

Не бойтесь, что я буду заставлять вас делать 3D таймер. Хотя была такая идея. Но тут и я сам не справлюсь. Хотел на ту прощадку из примера выше текстуру наложить, но не получилось

Последний раз редактировалось Stilet; 31.10.2014 в 07:31.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
описать класс в с# volkodinocka Помощь студентам 0 09.11.2013 22:05
Описать класс С# NeoX_2011 Помощь студентам 1 19.03.2012 00:10
C# исправление ошибки. Описать класс, реализующий шестнадцатеричный счетчик PROkaZZZniK Помощь студентам 7 09.02.2012 16:29
Описать класс-родитель и класс-потомок. Delphi 7 Andrew_M Помощь студентам 0 15.01.2011 14:42
Описать класс. Telec Общие вопросы C/C++ 1 30.04.2010 18:43