Я создаю графический интерфейс, в котором хранятся и отображаются объекты различных типов данных, таких как int, double, string и три других класса, которые я создал: Rational, Date и Complex. Эти объекты хранятся в связанных списках одного типа. Для int, double и string у меня были проблемы с хранением значений, которые пользователь вводит в QPlainTextEdit в списки, и отображением их в QTextBrowser , однако я не уверен на как отобразить объекты из классов, которые я создал, в QTextBrowser . Есть ли функция, которая может сделать это?
В настоящее время я работаю с моим классом Rational, который принимает объекты в виде "Rational (3,4);" и отображает их в виде дробей, таких как "3/4" .
Мне удалось создать объекты из пользовательского ввода в форме «3/4» и поместить их в связанный список, но я не смог отобразить их в своем QTextBrowser
//sample code
else if(ui->Rational_button->isChecked())
{
ui->main_display->setText("");
//Iterator that goes through the linked list to get the objects
LinkedList<Rational>::Iterator it = rationalvec.begin();
while(it != nullptr)
{
ui->main_display->append(QString::fromStdString(*it));
/* Trying to display all Rational
objects in the QTextBrowser */
++it;
}
}
//There should be an output like the following inside the QTextBrowser
4/5
2/3
7/9
9/11
//These are all Rational type objects
У меня "семантическая проблема" нет жизнеспособного преобразования из 'Rational' в QString / const std :: string . Я не могу найти способ конвертировать или отображать эти объекты в QTextBrowser.
РЕДАКТИРОВАТЬ: Вот класс Rational
class Rational
{
private:
int numer; //IN/OUT - the numerator int
int denom; //IN/OUT - the denominator int
public:
/******************************
** CONSTRUCTOR & DESTRUCTOR **
******************************/
Rational() //Constructor
{
numer = 0;
denom = 1;
}
Rational(int number) //Constructor
{
numer = number;
denom = 1;
}
Rational(int number1, int number2) //Constructor
{
numer = number1;
denom = number2;
}
/***************
** ACCESSORS **
***************/
const Rational add(const Rational &) const;
const Rational subtract(const Rational &) const;
const Rational multiply(const Rational &) const;
const Rational divide(const Rational &) const;
void display() const
{
cout << numer << "/" << denom;
}
friend ostream& operator<<(ostream &, const Rational &) //FOR WIDGET
{
out << object.numer;
out << '/';
out << object.denom;
return out;
}
bool operator <(const Rational& ) //FOR WIDGET
{
if((numer/denom) < (other.numer/other.denom))
return true;
else
return false;
}
bool operator >(const Rational& ) //FOR WIDGET
{
if((numer/denom) > (other.numer/other.denom))
return true;
else
return false;
}
};
Показывает только определение функции для функций, которые я использую, другие функции, определения которых не показаны, являются теми, которые я не буду использовать во время этой программы.