如何创建如图所示的圆圈?
图片中也有背景。你可以画一个带有渐变的圆,然后使用 :before 来关闭周边的内部,但是如何使用 :before 来显示背景呢?

您需要像这样绘制一个大表格:https ://ru.wikipedia.org/wiki/Compare_command_shells (带有颜色指示器、排序等)
该表承诺很大,未定义字段列表,此外,不同的人可能会在该表上工作,因此最好以某种方式将其与思维导图结合起来。例如,我们画了几个分支,在一个分支中有形式为“Functions”、“Exception Handling”的记录,在另一个“Bourne shell”、“POSIX shell”中,然后我们制作一个数据透视表这个并填满它。这样的东西存在吗?
最好是桌面应用程序 (win32/linux),而不是 Web 界面。
新的:
方便是什么意思?
这意味着充分利用键盘和热键。如果我需要用鼠标瞄准某个地方来添加下一个项目,我不需要它。您仍然需要够到鼠标,这需要很长时间。
这意味着应用程序的响应必须是即时的。如果我给了命令“新项目”,那么现在就给我看。如果你在 0.5 秒后显示给我,那么我认为它是一个刹车,因此不欢迎浏览器产品
我不必寻找在哪里输入新信息。如果有水平滚动,这是一个非常糟糕的信号。在 OOCalc / Excel 等传统编辑器中输入会变成不断滚动“我想写的单元格在哪里”。
新的:
在 MindView 中发现了类似的东西:https ://youtu.be/lHMOQaKrXeg - 注意时间和金钱字段。但是这个实现对我来说似乎非常不方便。
有一个主线程,我Controls在 winforms 中创建所有内容。还有第二个线程,通过事件的触发调用。由于此事件,我需要更改DataSourcey的值DataGridView。因此,会发生错误,即创建控件的主线程未尝试访问该控件。解决方案是使用方法Invoke\BeginInvoke。但是我不明白这些方法的本质以及如何在代码中实现它们。创建的第二个线程使用访问函数来dgv
private void RefreshTables()
{
try
{
if(con.State == ConnectionState.Closed)
{
con.Open();
}
sql = "select rowid, * from OpenPos";
adapOpenPos = new SQLiteDataAdapter(sql, con);
dsOpenPos = new DataSet();
adapOpenPos.Fill(dsOpenPos);
dataGridView1.DataSource = dsOpenPos.Tables[0];
dataGridView1.Columns[0].Visible = false;
dataGridView1.Columns[15].Visible = false;
dataGridView1.Update();
con.Close();
if (con.State == ConnectionState.Closed)
{
con.Open();
}
sql = "select rowid, * from ClosePos";
adapClosePos = new SQLiteDataAdapter(sql, con);
dsClosePos = new DataSet();
adapClosePos.Fill(dsClosePos);
dataGridView2.DataSource = dsClosePos.Tables[0];
dataGridView2.Columns[0].Visible = false;
dataGridView2.Columns[14].Visible = false;
dataGridView2.Update();
con.Close();
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
我们正在使用 Clean Architecture 方法(像这样)编写一个应用程序。
现在我们面临着添加分析的任务。此外,Yandex 指标和 Google Analytics。我们编写了自己的分析管理器,其公共 api 调用将数据发送到两个系统。
两个问题:
- 什么组件(视图、演示者、交互器、存储库)应该参与发送事件?
- 如何组织“复杂”消息的发送?也就是说,那些同时依赖于多个参数的参数,例如,用户通过哪些屏幕到达当前屏幕。
现在我们正在注入一个将事件发送到分析服务的类到演示者中,我们从那里发送事件。这种方法的一个优点是我们可以发送一组事件的请求——用户进入屏幕(创建演示者),用户成功执行了一些动作(来自模型的响应),反之亦然,发生了一些事情错误的。此外,我们可以使用单元测试来测试这些调用的存在。