In general, most protein isoforms result from variations in splicing.
However, in biology there are always exceptions and there are ways for a mature mRNA (post-splicing) to yield different proteins. Here are a few examples that come to mind:
1) RNA editing. Proteins such as ADAR1 are capable of changing bases in mature mRNA (e.g. ADAR1 catalyzes the conversion of adenosine (A) to inosine (I), which gets read as guanosine (G) during translation), so RNA editing is capable of changing the protein sequence that gets translated from an mRNA.
2) RNA modification. RNA bases can be modified by various enzymes. One type of modification is conversion of uridine (U) to pseudouridine. Pseudouridine is capable of wobble base pairing, so it can change the tRNAs a modified codon in mRNA is capable of binding to. One hypothesis is that installation of pseudouridine at stop codons can allow bypass of the stop codon, resulting in a longer protein isoform (e.g. see https://rnajournal.cshlp.org/content/early/2020/05/20/rna.076042.120
3) Alternative translation initiation sites. There are various mechanisms that might change where the ribosome begins translation, which can result in different protein isoforms (e.g. see https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6345546/
4) Frameshifting. In the HIV genome, translation of the Gag-Pol gene generally produces the Gag protein. However, some fraction of the time, an RNA element within the Gag-Pol gene at the end of the Gag coding sequence causes the ribosome to slip and backtrack by one base pair. This frameshift results in the stop codon for the gene to not be recognized, so the ribosome continues translation and instead produces the Gag-Pol protein, which is a polyprotein encoding both Gag and Pol (which will later by cleaved by the viral protease to separate the two units).